X-XSS-Protection

提供: セキュリティ
2015年3月22日 (日) 20:04時点におけるDaemon (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

HTTPレスポンスヘッダにX-XSS-Protectionを指定することで、ウェブブラウザに対して、XSSフィルター機能(XSS Filter)を有効にする指示ができます。IE8以降に導入されたXSSフィルターがX-XSS-Protectionヘッダによって活性化できます。

読み方

X-XSS-Protection
 えっくす えっくすえすえす ぷろてくしょん
XSS Filter
えっくす えすえす ふぃるたー

概要

X-XSS-Protection は、ウェブブラウザXSS フィルターを有効化するためのオプションです。XSSの問題を完全に取り除くものではなく、XSSによる攻撃を緩和するためのものです。

Internet Explorer 8 から実装されました

WebサーバーからのHTTPレスポンスヘッダの例は、以下の種類があります。

X-XSS-Protection: 1
X-XSS-Protection: 1; mode=block


HTTPレスポンスヘッダに X-XSS-Protection: 0 があると、インターネットオプションの設定よりも優先されます。0 のとき、XSS フィルター機能がオフになります。

IEの動作

反射型XSSを検知すると、IE8(IE8以降)は、ページをレンダリングしません。IEは、 # だけを表示します。 日本語版のWindows環境では、ブラウザの下部に「クロスサイトスクリプトを防止するために、このページは変更されました。」と表示します(IE11で検証済み)。

Internet Explorer の設定

  • コントロールパネルのインターネットオプションを開く
  • セキュリティ
  • 該当するゾーン
  • レベルのカスタマイズ
  • XSSフィルターを有効にする

検出や防御できるもの

  • HTTPレスポンスの元となるHTTPリクエストにスクリプト注入(XSS)攻撃パターンとみなされるものが含まれていて、そのパターンと同じものがHTTPレスポンスにも出現している
  • HTTPレスポンスの元となるHTTPリクエストを発生させたアクションやリンクが、HTTPレスポンスを返したサイトと異なるサイトから発生したものである
  • 同一のサーバでも、ホスト名による参照とIPアドレスによる参照は、異なるサイトとみなす。

阻止できないもの

  • document.write() によるページ内へのスクリプトタグ(<script>...</script>)の挿入
  • DOMを通じた <script> タグのスクリプト内容の書き換え
  • JSONPを使用したスクリプトの無防備な取り込み

使い方

Apache HTTP Server

Apache HTTP Server での設定の例を以下に示します。

Header set X-XSS-Protection "1; mode=block"

nginx

nginx での設定の例を以下に示します。

add_header X-XSS-Protection "1; mode=block";

node.js + Express

node.js + Express な環境の場合には、app.js に下記コードを追加します。

app.get('/*', function(req,res,next) {
           res.header('X-XSS-Protection', '1; mode=block');
           next();
});

関連項目




スポンサーリンク