[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
質問
なぜGoogleは
while(1);
を(非公開の)JSONレスポンスに追加することはできますか?
例えば、次のようなレスポンスで、カレンダーをオン・オフしています。 Googleカレンダー :
while (1);
[
['u', [
['smsSentFlag', 'false'],
['hideInvitations', 'false'],
['remindOnRespondedEventsOnly', 'true'],
['hideInvitations_remindOnRespondedEventsOnly', 'false_true'],
['Calendar ID stripped for privacy', 'false'],
['smsVerifiedFlag', 'true']
]]
]
をしないようにするためだと推測されます。
eval()
を置き換えるだけでよいのです。
while
で、完了です。evalの防止は、安全なJSONパースコードを書かせるためだと思います。
これは他の場所でも使われているのを見たことがありますが、不思議とGoogle(メール、カレンダー、連絡先など)で多く使われていますね。
Google ドキュメント
で始まる
&&&START&&&
で始まり、Google Contacts は
while(1); &&&START&&&
.
どうなってるんだ?
解決方法は?
を防ぐことができます。 JSONハイジャック という、JSONのセキュリティの大きな問題で、正式には 修正済み すべての主要なブラウザで 2011年以降 ECMAScript 5を使用しています。
例えば、Google が次のような URL を持っているとします。
mail.google.com/json?action=inbox
このメッセージは、受信箱の最初の50通をJSON形式で返します。他のドメインの邪悪なウェブサイトは、同一生成元ポリシーにより、このデータを取得するためのAJAXリクエストを行うことはできませんが、このURLを
<script>
タグを使用します。URLの訪問は
あなたの
クッキー、および
グローバル配列のコンストラクタやアクセッサメソッドをオーバーライドする。
オブジェクト(配列またはハッシュ)属性が設定されるたびに呼び出されるメソッドを持つことができ、JSONコンテンツを読み取ることができるようになります。
は
while(1);
または
&&&BLAH&&&
でのAJAXリクエストは、これを防止します。
mail.google.com
はテキストコンテンツに完全にアクセスすることができ、それを取り除くことができます。しかし
<script>
タグの挿入は、JavaScriptを何も処理せずに盲目的に実行するため、無限ループかシンタックスエラーになります。
の問題には対応していません。 クロスサイトリクエストフォージェリ .
関連
-
vueのグローバルがscss(mixin)を導入。
-
vueのプロジェクトでモックを使用する方法を知っていますか?
-
[解決済み] json gem のインストール中にエラー 'mkmf.rb can't find header files for ruby' が発生する。
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] なぜ ++[[]][+[] +[+[]] は "10" という文字列を返すのでしょうか?
-
[解決済み] parseInt(1/0, 19)はなぜ18を返すのですか?
-
[解決済み] IEでデベロッパーツールを一度開いただけで、JavaScriptが動作するのはなぜですか?
-
[解決済み] JSON:なぜフォワードスラッシュはエスケープされるのですか?
-
[解決済み】OAuth v2には、なぜアクセス・トークンとリフレッシュ・トークンの両方があるのでしょうか?
-
[解決済み】JSONの代わりに生成されたHTMLを返すのは、なぜ悪い習慣なのでしょうか?それともそうなのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
Vueはランニングライト形式のテキストを水平方向にスクロールする機能を実装している
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
[解決済み] Explanation of <script type = "text/template"> ... </script>
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】なぜ人々はjsonレスポンスの前に「throw 1; <dont be evil>」や「for(;;);」のようなコードを置くのでしょうか?重複
-
[解決済み】「for (;;); { json data }」のようなAjax呼び出し応答は何を意味するのでしょうか?[重複している]。
-
[解決済み] JSONハイジャックはモダンブラウザでも問題ないのか?