水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > Self-XSSはブラウザの脆弱性か

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を操作したいときが結構あるので、まったく使えないとそれはそれで困ったりもします。

関連する話題: Web / セキュリティ / UA / IE / Firefox

最近の日記

関わった本など