web-dev-qa-db-ja.com

x-xss-protectionを使用しているときに、chromeの開発コンソールでこのエラーが発生するのはなぜですか?

コンソールでこのエラーを修正する方法は?

Error parsing header X-XSS-Protection: 1; mode=block, 1;
mode=block:expected semicolon at character position 14.
The default protections will be applied.
40
Vamsi Krishna

正しいヘッダーを送信してもエラーが表示される場合は、ヘッダーを2回送信するかどうかを確認してください。これはネットワークの下のエラーコンソールに表示され、任意のファイルをクリックします。

サーバーの場合、ヘッダーを2回送信することができます。

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

2つの異なるインクルードファイルに記載されているか、1つのインクルードファイルが2回含まれています。ブラウザまたは少なくともchromeは2つのヘッダーを内部で連結し、適用されたWRONGルールは、質問に示されているようになります。

X-XSS-Protection: "1; mode=block, 1; mode=block"
41
David

Chromeでも同じエラーが発生しました。複数のサイトにヘッダーを追加していました。

代わりに、NGINXを使用している場合は、httpブロックに追加する必要があります。

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

    ...
}

NGINXを介してDockerサービスをプロキシしているときにこのエラーが発生しました。 DockerサービスとNGINXの両方がヘッダーを追加するため、重複排除が必要です。私はついにこれで出てきました:

map $upstream_http_x_xss_protection $xss_p {
    '' '1; mode=block';
}
add_header X-XSS-Protection $xss_p always;

これを「貧しい人のset_header」と呼びます。 David および kolbyjack からの素晴らしいヒントに感謝します。

3
Franklin Yu

Akamaiを使用している場合、構成で「追加」動作の代わりに「変更」動作を使用します。 「modify」モードでのみ使用可能な「avoid duplicate headers」オプションを選択したことを確認してください。

2
Gianni C

X-XSS-Protectionの適切な構文に従っていないため、解析エラーが発生しています。

あなたはこれを探していると思います:

X-XSS-Protection: 1; mode=block

あなたの最後にある, 1を削除してください

1
SBurris

ロードバランサーを扱う場合は、ロードバランサーに余分なヘッダーを配置しないでください。ヘッダーが読み込まれ、ロードバランサーを介してサーバーから渡されます。両方に配置すると、ヘッダーが重複し、このエラーが発生します。

1
rtaft