X-XSS-Protection

HTTP X-XSS-Protection 响应头是 Internet Explorer,Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击 (XSS (en-US)) 时,浏览器将停止加载页面。若网站设置了良好的 Content-Security-Policy 来禁用内联 JavaScript ('unsafe-inline'),现代浏览器不太需要这些保护,但其仍然可以为尚不支持 CSP 的旧版浏览器的用户提供保护。

Header type Response header
Forbidden header name no

语法

X-XSS-Protection: 0
X-XSS-Protection: 1
X-XSS-Protection: 1; mode=block
X-XSS-Protection: 1; report=<reporting-uri>
0

禁止 XSS 过滤。

1

启用 XSS 过滤(通常浏览器是默认的)。如果检测到跨站脚本攻击,浏览器将清除页面(删除不安全的部分)。

1;mode=block

启用 XSS 过滤。如果检测到攻击,浏览器将不会清除页面,而是阻止页面加载。

1; report=<reporting-URI> (Chromium only)

启用 XSS 过滤。如果检测到跨站脚本攻击,浏览器将清除页面并使用 CSP report-uri (en-US)指令的功能发送违规报告。

范例

当检测到 XSS 攻击时阻止页面加载:

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

PHP

php
header("X-XSS-Protection: 1; mode=block");

Apache (.htaccess)

bash
<IfModule mod_headers.c>
  Header set X-XSS-Protection "1; mode=block"
</IfModule>

Nginx

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

规范

不属于任何一个规范或草案的一部分。

浏览器兼容性

BCD tables only load in the browser

了解更多