2012-02-25 14 views
1

APIのように私のウェブサイトにオプションを追加したい場合はどうすればいいですか?有効性チェック付きのランダムキージェネレーター

誰でもmy.site.dot.com/api.php?id=nameを呼び出すとき、それは私のデータベースに

nameが追加されますが、私は、キーを使用する方法について考えてきたので、私はスパムエントリの多くを取得しています!

キーはそれecho "passed";と私はランダムなキーに文字や数字、またはその両方のいずれかを生成することができる任意の機能をしたい今、私の質問

echo "stopped";、間違った場合は右クリックであればそれはmy.site.dot.com/api.php?id=name&key=MMSDJJSHHHAG ようになりますなんでも。

しかし、最終的には、そのキーを知ることができる必要があります。なぜですか?誰かがmy.site.dot.com/api.php?id=name&key=MMSDJJSHHHAGに電話すると、MMSDJJSHHHAGが有効なキーであることが分かります。

my.site.dot.com/api.php?id=name&key=MMSDJJSHHHAG

<?PHP 
echo $id; //name 
echo $key; //MMSDJJSHHHAG 

if (key is valid) { 
echo "passed"; 
} else { 
echo "stopped"; 
} 
?> 

私は等...私は、テキストファイルまたはデータベーステーブルにそれを格納するための新しいキーを生成するたびのようなそこにいくつかの他のアイデアを知っているし、それは良いアイデアですが、私はそれを生成します誰かができるよう、ページを閲覧するとダウン:(

リフレッシュを作るサイトの十億、私は数学の方程式を考えています!!このアイデアについてのヘルプ〜おかげでたくさん

答えて

1

は、あなたがに方法を暗号化/ hasingを使用することができますあなたが話しているこの鍵を生成する約。 (例:md5)。

ほとんどのウェブサービスでAPIを使用するには、アカウントが必要です。 これらのサービスはアカウントのキーと一致します。

基本的には、各アクションやリフレッシュではなく、各アカウントのキーがあります。 apiメンバーのテーブルに「api_key」という別のフィールドを追加すると、準備が整いました。

「site_url」などの別のフィールドを追加することもできます。 api.phpファイルでrequestの「ソース」がチェックされます。 リクエストのKEYとSOURCEが1つのアカウントに対して存在する場合、必要な処理を行います。そうでない場合は、などです。

+0

ありがとうございます。ユーザーが登録後にキーを取得し、メンバーごとに1つのキーがあるとわかりますが、私のアイデアは登録なしで無料のAPIに基づいていました。もし私がそれをする方法を見つけなかったら、私は登録時に鍵に戻るかもしれません。 –

1

キーがユーザー固有のものでない場合は、任意のパターンでキーを生成するだけでは、あいまいさによるセキュリティに過ぎません。既に誰かがあなたのAPIをスパムしている場合、ロジックは、あなたのアプリケーションが使用しているURLを観察し、盲目的に(または意図的に)呼び出していることを指示します。一意でないパターン生成鍵を添付すると、オブザーバはその鍵を単にスヌープし、鍵がサーバ側に渡されない限り、その鍵を傍受します。

ボトムラインは、実際の認証方法を使用する必要があるスパムを止めたいですか?

関連する問題