3

次のJSONP応答構文を使用する理由は何ですか?

URLの下:https ://ect.channel.facebook.com/probe?mode = stream&format = json

がある:

for (;;); {"t":"heartbeat"}
{"t":"heartbeat"}
{"t":"continue","seq":0}

私の質問は、for(;;);このJSONP応答で正確に何をするかということです。どのように解析されますか?

4

2 に答える 2

5

これはJSONPではありません。これはJSONであり、JSONPとして使用すると失敗するように意図的に変更されています。

そのURLをタグに含めると、ブラウザが無限ループ<script>でフリーズします。for

これにより、攻撃者がそれを外部サイトに含めたりObject.defineProperty、セッター関数を作成してSOPをバイパスしたりすることを防ぎます。

于 2012-12-06T19:09:11.887 に答える
3

それはセキュリティ上の理由からです。JSONPは実際にはJSONではなく、実行されるJavaScriptファイルです。

そこfor(;;);にあるので、(Facebook以外の)人々がそのファイルにアクセスしようとしても、アクセスできません。

注:これはJSONPではありませんが、ブラウザはそれを認識していません。それを実行しようとすると、無限ループに陥ります。

于 2012-12-06T19:07:19.293 に答える