ホームページ >ウェブフロントエンド >jsチュートリアル >Google が JSON 応答の先頭に「while(1);」を追加するのはなぜですか?
Google の JSON 応答の先頭に追加されたコードを理解する
Google は頻繁に「while(1);」という前文を追加します。プライベート JSON 応答の先頭まで。この慣行により、その目的について疑問が生じています。
JSON ハイジャックの防止
このコードを先頭に追加する主な理由は、JSON ハイジャックを阻止することです。JSON ハイジャックはセキュリティ上の脆弱性です。攻撃者は、外部スクリプトを使用して JSON 応答に悪意のあるスクリプトを含めることにより、機密データにアクセスできます。 「while(1);」を先頭に追加することで、コードが無限ループに入るときに、Google はスクリプトが自動的に実行されるのを防ぎます。
技術的な詳細
JSON ハイジャックが実行されます。ブラウザーによって Web サイトが「配列」および「関数」グローバル オブジェクトのメソッドの動作を動的に変更できるという事実を利用します。したがって、攻撃者はオブジェクトの特定の応答属性を設定し、任意のコードを実行する可能性があります。
代替構文
「while(1);」以外にも、Google はバリエーションを使用しています。さまざまなサービス:
これらのバリエーションは、JSON ハイジャックを防止し、安全な JSON 解析を促進するという同じ目的を果たします。
ブラウザ互換性
JSON ハイジャックは、異なる生成元のスクリプトによるデータへのアクセスを制限する ECMAScript 5 の Same-Origin ポリシーを通じて、2011 年以降、すべての主要なブラウザーで対処されています。ただし、先頭に追加されたコードは、古いブラウザや非準拠の Web サイトの潜在的な脆弱性に対する追加の保護層を提供します。
以上がGoogle が JSON 応答の先頭に「while(1);」を追加するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。