水無月ばけらのえび日記

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

最近の日記

関わった本など

インクルーシブHTML+CSS & JavaScript 多様なユーザーニーズに応えるフロントエンドデザインパターンデザイニングWebアクセシビリティ - アクセシブルな設計やコンテンツ制作のアプローチコーディングWebアクセシビリティ - WAI-ARIAで実現するマルチデバイス環境のWebアプリケーション体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践ウェブの仕事力が上がる標準ガイドブック 5 WebプログラミングWeb Site Expert #13Dreamweaver プロフェッショナル・スタイル [CS3対応] (Style for professional)

その他サイト