3

あなたのサイトへのリクエストがサーバー間の呼び出しかブラウザの URL 呼び出しかを判断する信頼できる方法はありますか?

たとえば、Paypal IPN はサーバー間の呼び出しです。ただし、ブラウザからのパラメータを使用して URL から直接呼び出して偽造することもできます。

私は両方の方法を試し、両方のケースで $_SERVER をダンプしましたが、サーバー間呼び出し用に設定されていないブラウザー用に設定された変数がいくつかありました...つまり

HTTP_COOKIE
HTTP_CACHE_CONTROL

それらはサーバー間の呼び出しには存在しません。常にそうであると確実に想定できますか?

HTTP_USER_AGENT を使用することもできますが、それは何でもかまいません。また、REMOTE_ADDR をチェックしたくありません。これは、paypal や特定のサーバー側の応答に限定されず、より動的な変更を加えようとしているためです。サーバー側の呼び出しでは、「一般的なブラウザー」の値が欠落しているというのが私の推測です。100%信頼できるわけではないかもしれませんが、99%信頼できるかもしれません

これにより、コールバック ページで php ヘッダー リダイレクトを使用するか、javascript リダイレクトを使用するかが最終的に決定されます。

考え?

4

1 に答える 1

2

あなたのサイトへのリクエストがサーバー間の呼び出しかブラウザの URL 呼び出しかを判断する信頼できる方法はありますか?

いいえ、100%信頼できる方法はありません。ユーザーが適切なパラメーターを取得できれば、Web ブラウザーまたは単純なカスタム アプリケーションを使用して、"サーバーからサーバーへ" 要求を簡単に偽造できます。

偽造に対する唯一の真の (ハードコアな) 防御は、HTTPS と、クライアント証明書または要求の一部として送信される何らかのセキュリティ トークンのいずれかを組み合わせて使用​​することです。

于 2014-03-26T11:38:58.333 に答える