Self-XSSはブラウザの脆弱性か
2011年11月17日(木曜日)
Self-XSSはブラウザの脆弱性か
公開: 2011年11月20日20時20分頃
こんな記事が……「Facebookの問題画像の氾濫はWebブラウザの脆弱性に原因か? (www.itmedia.co.jp)」。
Facebookはメディアに寄せたコメントで、この攻撃にはWebブラウザの「self-XSS」の脆弱性が悪用されたとの見方を明らかにした。
(~中略~)
今回の攻撃ではユーザーが不正なJavaScriptをWebブラウザのアドレスバーにコピー&ペーストするよう仕向けられたとされる。現時点で、どのWebブラウザが影響を受けるのかは分かっていない。
ブラウザのアドレスバーにjavascript:で始まる文字列をコピーさせてスクリプトを実行させるという話ですが、これ、ブラウザの脆弱性なのでしょうか。ユーザーが自らコピーして実行してしまうのではどうしようもないような……。
……と、思ったら、実は最近のブラウザではけっこう対策されているのですね。たとえばIE9の場合、
javascript:alert(document.cookie)
……という文字列をアドレスバーにコピーしても、
alert(document.cookie)
という文字列がペーストされます。つまり、頭の"javascript:"が取り除かれます。このままEnterを押してもスクリプトは実行されず、検索されることになります。手動で頭にjavascript:と打ち込むことはできて、そうするとスクリプトが実行されます。
というわけで対策されているのですが、攻撃者には「javascript:と入力してからコピーしてください」という指示をする余地もあるので、この対策で万全なのかと言われると微妙なところです。
ではFirefox8ではどうかと思って試してみると、こんな力強いメッセージが。
javascript: and data: URIs typed or pasted in the address bar are disabled to prevent social engineering attacks.
Developers can enable them for testing purposes by toggling the "noscript.allowURLBarJS" preference.
これはおそらく、手元のFirefoxに拡張の「NoScript」を入れているために出ているのでしょう。手入力だろうと何だろうと力強く警告されて全く動作しません。書かれているように、設定でこの機能を無効にできるようですが、それをしない限り鉄壁のディフェンスです。
そんなこんなで、対応方法はあると言えばあるというわけですね。しかし、こういう対策が実装されていないからといって、それがブラウザの脆弱性と言えるのかどうか、なかなか微妙なところではあります。
※個人的には、javascript:document.cookieをアドレスバーに入れてCookieを操作したいときが結構あるので、まったく使えないとそれはそれで困ったりもします。
- 「Self-XSSはブラウザの脆弱性か」にコメントを書く
- 前(古い): スーパーマリオ3Dランド タイムアタックの世界へ
- 次(新しい): PS3トロフィー問題でPSN規約改訂