while(1) を先頭に追加します。 JSON 応答へ: なぜ Google はそれを行うのですか?
Google のプライベート JSON エンドポイントに API リクエストを行うとき、珍しいプレフィックス while(1); に気づくかもしれません。このため、その目的と潜在的な影響について疑問が生じています。
JSON ハイジャックの防止
このプレフィックスの主な理由は、JSON ハイジャックから保護することです。 2011 年以前は、ブラウザーにより、AJAX リクエスト中に動的に作成されたオブジェクトを Web サイトが傍受して変更することができました。 while(1) を先頭に追加することで; JSON 応答に対して、Google はブラウザがこれらの応答を JavaScript コードとして評価することを防ぎ、潜在的なハイジャック攻撃を効果的にブロックします。
Eval() エクスプロイトの回避
最新のブラウザは安全な JSON 解析を強制します、 eval() を介して悪意のあるコードを実行することが困難になります。ただし、while(1);プレフィックスは、攻撃者に対して構文の曖昧さを生み出すことにより、追加のセキュリティ層を提供します。プレフィックスを削除したとしても、残ったコードにより無限ループまたは構文エラーが発生し、攻撃が無効になります。
Google サービス間のバリエーション
さまざまな Google サービスこのプレフィックスのバリエーションを使用します。 Google ドキュメントでは while(1); の代わりに &&&START&&& が使用されますが、Google コンタクトでは while(1); に &&&START&&& が追加されます。これは、JSON ハイジャックを防ぐという同じ目的を果たします。
結論
Google には while(1) が組み込まれています。プライベート JSON 応答に同様のプレフィックスを含めることは、JSON ハイジャック攻撃に対する事前の対策となります。これにより、これらの応答が実行可能な JavaScript コードとして扱われないことが保証され、ユーザー データが保護され、悪意のあるアクティビティが防止されます。
以上がGoogle が JSON 応答の先頭に「while(1);」を追加するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。