ホームページ >バックエンド開発 >PHPチュートリアル >部外者が API を呼び出すのを防ぐにはどうすればよいですか?

部外者が API を呼び出すのを防ぐにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 14:21:041325ブラウズ

質問があります
Web サイトの操作がすべて API を通じて実装されている場合
たとえば
PHP には、www.control.php?action=1$addlist="adfs".... というコントロール ページがあります。
もちろんですそれは投稿メソッドと例です。

ホームページの ajax からこのページへのポストを呼び出します

他の人がツールを介して私の API にページを送信するのを防ぎ、私のモバイルアプリのみを送信できるようにするにはどうすればよいですか?

アドバイスありがとうございます


ディスカッション (解決策) への返信

私たちのチームのアプローチは、各携帯電話がアプリにログインした後、sid と呼ばれる session_id が存在し、それによってセッション ID が存在するかどうかを判断できるというものです。それは違法な通話です

私たちのチームの方法では、各携帯電話がアプリにログインした後、sid と呼ばれる session_id が存在し、これを使用して通話が違法であるかどうかを判断できます

ありがとうございます。このようなセッション ID は検証のためにデータベースに保存する必要がありますか?
私はトークンについてあまり詳しくなく、その実装方法も理解できません


私たちのチームのアプローチは、各携帯電話がアプリにログインした後、これを通じて sid と呼ばれる session_id が存在するというものです。不正な通話かどうか判断できます

ありがとうございます。このようなセッション ID は検証のためにデータベースに保存する必要がありますか?
トークンについてはあまり詳しくなく、実装方法もわかりません
これは、アプリが Web 側のインターフェイスを呼び出した後、SID 値を渡し、Web が SID を検証するというものです ( sid) サーバーサイド C++ 経由 アプリのログイン時にメモリに保存される必要があります。これらが等しい場合は問題ありません。等しくない場合は、不正な呼び出しを意味します。

秘密キーは電話機内で生成され、すべてのリクエストは秘密キーの非対称署名でハングされ、署名を満たさないリクエストは拒否されます。

次の Alipay 支払い phpsdk に移動し、すべての get パラメーターで署名認証がどのように実行されるかを確認してください。

それはとても奥深いので、私は PHP の初心者としてそれを学ぶためにここに来ました。

秘密キーは電話機内で生成され、すべてのリクエストは秘密キーの非対称署名でハングされ、署名を満たさないリクエストは拒否されます。

皆さんありがとうございます
簡単に言うと、ユーザーがログインすると、サーバーはログインを検証した後、フロントエンド クライアントにデジタル トークンを発行し、それを非表示に隠し、それに応じてセッションに書き込みます
ユーザーが送信するたびに、これが非表示になります。内部の値が相対的な場合は、ユーザーが認証されていることを意味します。上記の URL の例:
最初に ??? を使用して暗号化して復号化すると、新しい URL は
になります。 暗号化されたコンテンツは、復号化関数を使用して復号化できます。

www.control.php ?action=1&addlist="adfs"&key=encryption function ("adfs")

サーバー側:
addlist と key の値を取得し、復号関数を使用してそれらを復号しますこの結果を addlist と比較するために使用しますか?



私たちのチームのアプローチは、各携帯電話がアプリにログインした後、sid と呼ばれる session_id を介して、それが不正な通話であるかどうかを判断できるというものです。

ありがとうございます。このようなセッション ID を検証のためにデータベースに保存する必要がありますか?
トークンについてはあまり詳しくなく、実装方法もわかりません

これは、アプリが Web 側のインターフェイスを呼び出した後、SID 値を渡し、Web が SID を検証するというものです ( sid) サーバーサイド C++ 経由 アプリのログイン時にメモリに保存される必要があります。これらが等しい場合は問題ありません。等しくない場合は、不正な呼び出しを意味します。


php を引き続き使用し、C++ を呼び出して検証してみてはいかがでしょうか?初歩的な質問です

a.. スコアを間違えてしまいました。 。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。