Internet Explorer 7.0 Beta 3 ではスクリプト発動条件が厳しくなってる!?
IE7 Beta 3(英語版)をいろいろテストしていて気付いたのですが、IE6 に比べてスクリプトが発動する条件が厳しくなっている…というよりは、理不尽なスクリプトの発動条件が減っている…ようです。例えば、<script>タグを使わずにスクリプトを埋め込む典型的な方法としてよく使われる
<img src="javascript:alert('xss')">
という記述方法がありますが、IE7 Beta 3 では動きません。
また、<script>タグや onXXX といったイベントハンドラを使わずにスクリプトを発動させる
<body background="javascript:alert('xss')">
という記述方法があるのですが、これに関しても IE7 Beta 3 ではスクリプトが発動しません。同様に
<input type="image" src="javascript:alert('xss')">
も動かなくなっています。
これらの記法は XSS を発動させる典型的な記法であるものの、まともなHTMLでは通常このような記法を使用することはありえないと思われます。ブラウザ利用者をXSSから守るという点では、非常にすばらしい改善だと思います。
ただし、Web アプリケーション開発者においては、IE7 だけでテストを行って XSS が発生しないからと安心してはいけません。上記は手元の IE7 Beta 3 にてテストした結果にすぎず、今後動作が変更される可能性もあります。また、これらの記法は IE6 ではスクリプトが動作しますので、そういったブラウザのためにも手を抜かずに検査をしましょう。