X-XSS-Protection
提供: セキュリティ
スポンサーリンク
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(); });
関連項目
ツイート
スポンサーリンク