あなたのサイトへのリクエストがサーバー間の呼び出しかブラウザの URL 呼び出しかを判断する信頼できる方法はありますか?
たとえば、Paypal IPN はサーバー間の呼び出しです。ただし、ブラウザからのパラメータを使用して URL から直接呼び出して偽造することもできます。
私は両方の方法を試し、両方のケースで $_SERVER をダンプしましたが、サーバー間呼び出し用に設定されていないブラウザー用に設定された変数がいくつかありました...つまり
HTTP_COOKIE
HTTP_CACHE_CONTROL
それらはサーバー間の呼び出しには存在しません。常にそうであると確実に想定できますか?
HTTP_USER_AGENT を使用することもできますが、それは何でもかまいません。また、REMOTE_ADDR をチェックしたくありません。これは、paypal や特定のサーバー側の応答に限定されず、より動的な変更を加えようとしているためです。サーバー側の呼び出しでは、「一般的なブラウザー」の値が欠落しているというのが私の推測です。100%信頼できるわけではないかもしれませんが、99%信頼できるかもしれません
これにより、コールバック ページで php ヘッダー リダイレクトを使用するか、javascript リダイレクトを使用するかが最終的に決定されます。
考え?