回答:
Google +1ウィジェットは、を構築しているWebサイトで実行されるJavaScriptですiframe
。このJavaScriptウィジェットはWebサイトのコンテキスト内で実行されるため、iframeのOrigin継承ルールによる制約を受けません。したがって、このJavaScriptウィジェットは、単純なように見えても、親サイトで必要なDOMイベントを設定できiframe
ます。
もう1つ、なぜGoogleはiframe
?div
ページ上で単に生成しないのはなぜですか?リンクはから発生しているiframe
ため、CSRF(クロスサイトリクエストフォージェリ)トークンをリクエストに埋め込むことができ、親サイトはこのトークンを読み取ってリクエストを偽造することができません。つまり、これはiframe
、元の継承ルールに基づいて悪意のある親から自分自身を保護するCSRF対策です。
攻撃の観点から見ると、これはUI-RedressよりもXSS(クロスサイトスクリプティング)に似ています。あなたはGoogleにあなたのウェブサイトへのアクセスを許可しており、ユーザーのCookieをハイジャックしたりXmlHttpRequests
、選択した場合はウェブサイトに対してパフォーマンスを発揮したりする可能性があります(ただし、悪意のある富裕層を訴えます)。
この状況では、Googleを信頼する必要がありますが、Googleはあなたを信頼していません。
GoogleはiFrameを使用して、「漏れやすい標準DIV」を防止しています。彼らのクロージャライブラリダイアログは同じことをします。他のコンテンツが+1ボタンに流れ込むことができないようにするためです。 http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/dialog.html。
<iframe>
ですが、これは正しいと思われる可能性があります(その可能性について説明しています)。しかし、DOMの検査から、これが事実であるとは思われません。そして、それは私の名前とGmailアドレスを悪意のある親に公開します(秒に包まれない限りiframe
)!