为什么在使用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.

如果即使发送了正确的标头也显示错误,请检查是否发送了两次标头这显示在网络下面的错误控制台中,您可以单击任何文件。

如果对于服务器,可能会发送两次标头

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

被记录在两个不同的包含文件中,或者一个包含文件被包含两次。浏览器或至少chrome将两个标头连接在一起,然后在内部应用WRONG规则,如问题所示:

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

我在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"。感谢大卫和科比的精彩提示。

如果您正在使用Akamai,请在配置中使用"修改"而不是"添加"行为。请确保您已选择"避免重复标头"选项,该选项仅在"修改"模式中可用。

您没有遵循X-XSS-Protection的正确语法,因此会出现解析错误。

我想你正在寻找这个:

X-XSS-Protection: 1; mode=block

因此,删除末尾的, 1

如果您正在处理负载均衡器,请不要将额外的头放在负载均衡器上。标头将被填充,并通过负载均衡器从服务器传递出去。将它放在两者上会导致重复的标头并导致此错误。

最新更新