意外な盲点。
しかし、
クリックジャック - 素人がプログラミングを勉強するブログFirefoxユーザはNoScriptを使うか、about:configからpermissions.default.subdocumentを3にしましょう。
というのはあまりに厳しく悲しい。対策しようは果たしてないのでしょうか?
その結果が、こちら。
このブックマークレットで、クリックジャックを殺せます。「クリックジャッキングってこうですか? わかりません」の例はもちろん、より深刻そうな「クリックジャック - 素人がプログラミングを勉強するブログ」で指摘された例にも有効です。IE7, Firefox 3, Safari 3/4, Opera, Chromeで動作確認済みです。
以下の実例で試してみてください。
一見何の変哲もなさそうなページだが、罠が隠されている。
で、実装はこちら。
clickunjack.js要は、position:absoluteなiframeを拾って削除しているわけです。
実は、クリックジャック攻撃にとってより本質的なのは、iframeが透明であることよりも、他のDOM Elementの上にかぶさっていることです。そのためには、position:absoluteが必要で、逆にこういう目的以外でiframeをposition:absoluteとする必然性はまずないはずです。誤爆の可能性はゼロではありませんが、かなり低いでしょう。仮に誤爆したとしても、ページをリロードすればよいのですし。
Dan the JavaScripter
追記:
はてなブックマーク - Hamachiya2のブックマークabsoluteじゃなくてもできるよ。 relative, fixed … たぶんうまくすれば float でも。
どうせなら、position:static以外なiframe全て対象にすればいいと気がついたのでclickunjack.jsを更新。
にも対応済み。しかし、
いや、それすらなくても攻撃成立しそう。 iframeがだめなら、iframe以外をabsoluteすればいいじゃない…と。
まで対象にしてしまうと、さすがに誤爆率が高くなってしまう。
このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。