どういうわけか、Google +プラス1ウィジェットにカーソルを合わせると、ツールチップタイプの取引が<iframe>
要素が含まれる要素。これを確認するためにDOMを検査しました。*
そう:
何?どうやって!?
悪意を持って使用された場合、これはクリックジャッキングの大きな機会ではありませんか? (誰かがこれらのソーシャルウィジェットに対してMITMを実行していると想像してください!)
*更新:私が見たのは、tooltip-yメッセージが秒であったこと、動的に作成されたiframe
。
Google +1ウィジェットは Webサイトで実行されるJavaScript であり、iframe
を構築しています。このJavaScriptウィジェットはWebサイトのコンテキスト内で実行されているため、 iframeの元の継承ルール の制約を受けません。したがって、このJavaScriptウィジェットは、単純なiframe
のように見える場合でも、親サイトで必要なDOMイベントを設定できます。
もう1つ、Googleがiframe
を使用しているのはなぜですか?ページにdiv
を生成しないのはなぜですか?リンクはiframe
から発生するため、CSRF(クロスサイトリクエストフォージェリ)トークンをリクエストに埋め込むことができ、親サイトはこのトークンを読み取ってリクエストを偽造することはできません。したがって、iframe
は、悪意のある親から自身を保護するためにOrigin継承ルールに依存する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 。