2

Iamは、PHPで記述されたバックエンドを保護するための適切な実装を探しています。

シナリオ:

サーバー1(www.domain.com) サーバーはJS/HTMLのみをクライアントに送信します

サーバー2(www.domain2.com) は、JSONデータ(Sevler1のJavascriptテンプレートエンジンによってレンダリングされた)でサーバー1に応答しているPHPサーバーを実行しています。

他の人がServer1からJSON応答を取得するのを止めるにはどうすればよいですか?ある種のAPIキーを追加できることは知っていますが、JSに保存されています(誰でも読み取ることができます)。サーバー1 IPからのリクエストかどうかを確認できますが、そのようなリクエストを偽造することは大したことではありません。

4

3 に答える 3

1

できることの1つは、サーバー1でセッションCookieを作成し、同時にそのセッション値をサーバー2のデータベースに保存することです。サーバー1から誰かがリクエストを行うたびに、Cookie値をリクエストに追加して、サーバー2に送信します。 API呼び出しを行っている間。サーバー2は、着信セッションIDがデータベースに保存されているものと一致する場合にのみJSONを提供します。

これは絶対確実ではありません。誰かがCookieをハッキングする可能性があります。ユーザーがログアウトしたら、セッションをクリアする必要があります。

もう1つの方法は、おっしゃるように、サーバー1でサーバー側のスクリプト言語を使用することです。

于 2012-11-13T14:11:10.543 に答える
1

Server1からServer2への内部呼び出しは解決策であり、Server1をインターネットに公開せず、プライベートネットワークに追加すると役立つ場合があります。

誰かが回避策を回避している場合でも、リクエストの発信元が許可されたソース(この場合はServer2)からのものであることを確認するなどの検証を追加できます。リクエストの発信元が別のソースからのものである場合は、処理せずに単に戻ります。

それでも気になる場合は、ハッシュベースのメッセージ認証コードなどのメカニズムをいつでも追加できます。

于 2012-11-13T13:59:25.703 に答える
1

短命のトークンをいくつか作成し、それらをサーバー側でのみ共有してから、JSコードに埋め込んでみませんか?

ソース

于 2013-06-17T16:38:14.617 に答える