0

すべての主要なブラウザーが持っている同じオリジン ポリシーと、同期化されたトークン パターン (すべての要求をトークン化するのは面倒です) を除いて、要求がサード パーティ経由ではなくユーザー インターフェイスから直接送信されているかどうかを確認するにはどうすればよいでしょうか。

たとえば、iframe から youtube にリクエストを送信すると (つまり、xmlhttprequest オブジェクトではなく src=... を意味します)、応答は空白のページになり (どうすればよいでしょうか?)、facebook ajax にリクエストを送信します。 iframe からのホバーカード (単純なコンテンツ取得リクエスト) の場合、アドレス バーにも空白のページ (コンテンツなし) が表示されます。SO 応答は、iframe 要求からの通常のコンテンツです。

前に言ったように、リクエストが信頼できるソースから来ているかどうかをどのように確認しますか (できればサーバー側のコード)。

PS:ヘッダーに依存しないでください。オリジンがリクエストから受信しない理由はわかりますが、すべての主要なブラウザーですべてオリジンヘッダーが実装されていることがわかります。Refereer は、一部の ati スパイウェア プログラムによって変更される可能性があります。とにかく、ヘッダーは本当に信頼できません。しかし、はい、それはチェック用のレイヤーであることが示されました。

4

2 に答える 2

0

ユーザーの出所を本当に確認することはできません。ユーザー エージェントは簡単に偽装できます。ユーザーインターフェイスでいくつかのcsrfトークンを作成し、それらのトークンを持つクライアントのみを許可できると思います

于 2012-04-06T09:41:21.193 に答える
0

$_SERVER['HTTP_REFERER']自分のサイトから来ているかどうかを確認してください。

于 2012-04-06T09:36:53.360 に答える