1. ホーム
  2. ajax

[解決済み】「for (;;); { json data }」のようなAjax呼び出し応答は何を意味するのでしょうか?[重複している]。

2022-04-21 05:25:16

質問

<ブロッククオート

重複の可能性があります。

なぜ人々はjsonレスポンスの前に「throw 1; <dont be evil>」や「for(;;)」のようなコードを置くのでしょうか?

FacebookのAjax呼び出しで、このような構文が使われているのを見つけました。私は for (;;); の部分があります。これは何に使うのでしょうか?

これがコール&レスポンスです。

GET http://0.131.channel.facebook.com/x/1476579705/51033089/false/p_1524926084=0

応答してください。

for (;;);{"t":"continue"}

解決方法は?

少し遅れて、T.J.が基本的に謎を解きましたが、この特定のトピックについて、良い例とこのメカニズムへの深い洞察を提供する素晴らしい論文を共有しようと思います。

この無限ループは、quot;Javascriptハイジャックへの対策であり、Gmailへの攻撃で注目を集めた攻撃の一種である。 ジェレマイア・グロスマン .

そのアイデアは、美しいほどシンプルです。多くのユーザーは、GmailやFacebookに常時ログインしている傾向があります。つまり、サイトを立ち上げ、悪意のあるサイトのJavascriptで、オブジェクトまたは配列のコンストラクタをオーバーライドするわけです。

function Object() {
    //Make an Ajax request to your malicious site exposing the object data
}

を含めると <script> のようなタグをそのサイトに追加します。

<script src="http://www.example.com/object.json"></script>

そして最後に、悪意のあるサーバーのログにあるJSONオブジェクトについて、すべてを読むことができます。

約束通り、リンク先には 論文 .