以前、年明け早々くらいにTwitterのタイムライン上にX-Content-Type-Options: nosniffのことが流れていたので、その効果について確認してみました。細かいことは
このスクリプトにとりあえずtest.cgiと名付けてブラウザからアクセスしてみるとIEではContent-typeを'text/plain'と指定していても内容からHTMLとして判断されてJavaScriptが実行されます。
では、レスポンスヘッダにX-Content-Type-Options: nosniffを追加します。前のサンプルからコメントアウトをはずしてサイドブラウザでアクセスしてみます。
最初に紹介したリンク先ではXSSが発生しうるもっと現実味のあるシナリオも紹介されていますが、Webアプリの制作者として、訪問者がIEでのアクセスが考えられる以上、適切なContent-typeを指定するだけでは予測の難しいセキュリティ上のリスクを含みうるということが分かります。
新しい記事: onclickイベントで実行不可能な機能を作ってませんか?