我试着把这个:
<meta http-equiv="X-XSS-Protection" content="0">
在
<head>
标签中,但没有运气。我正在尝试摆脱讨厌的 IE,防止跨站点脚本
我怀疑它只能作为元标记使用。 您可能需要告诉您的网络服务器将其作为真实标头发送。
在 PHP 中,你会这样做
header("X-XSS-Protection: 0");
在 ASP.net 中:
Response.AppendHeader("X-XSS-Protection","0")
在 Apache 的配置中:
Header set X-XSS-Protection 0
在 IIS 中,属性中有一个用于额外标头的部分。 它通常已经设置了“X-Powered-By: ASP.NET”;您只需将“X-XSS-Protection: 0”添加到同一位置即可。
如果您使用.Net MVC,您可以通过Web.Config中的customHeaders进行配置。
要添加这些标头,请转到 httpprotocol 节点并在 customHeaders 节点内添加这些标头。
<httpprotocol>
<customheaders>
<remove name="X-Powered-By">
<add name="X-XSS-Protection" value="1; mode=block"></add>
</remove>
</customheaders>
</httpprotocol>
我强烈推荐此链接,它解释了如何在 ASP.NET MVC 中配置安全 IIS 响应标头: http://insiderattack.blogspot.com/2014/04/configuring-secure-iis-response-headers.html
在Apache中,您需要编辑配置文件,该文件可以是:
/etc/apache2/apache2.conf
/etc/apache2/httpd.conf
在文件中,您可以在末尾添加以下行以启用 HTTP 标头 XSS 保护:
<IfModule mod_headers.c>
Header set X-XSS-Protection: "1; mode=block"
</IfModule>
注意:如果
mod_headers
位于 Apache 主核心外部(未编译到 Apache 中),那么您将使用 .so
而不是 .c
- 即。 <IfModule mod_headers.so>
之后,保存更改,并使用以下命令重新启动 apache:
sudo服务apache2重新启动
或
sudo服务httpd重启
希望这有帮助! :)
在
ASP Classic
中,这个标签就可以做到:
<% Response.AddHeader "X-XSS-Protection", "1" %>
在某些情况下,如果使用
.htaccess
,则需要使用双引号:
Header set x-xss-protection "1; mode=block"
# Turn on IE8-IE9 XSS prevention tools
Header set X-XSS-Protection "1; mode=block"
此标头是 Internet Explorer 8 和 9 独有的,它在 IE 8 和 IE 9 中打开跨站点脚本保护,默认情况下该保护处于关闭状态,因为它可能会破坏某些网站。要打开 XSS 过滤器,请使用标头 X-XSS-Protection“1; mode=block”。如果您希望阻止为您的网站打开此过滤器,请将标头值设置为“0”;
http://stopmalvertising.com/security/secure-your-website-with-.htaccess/.htaccess-http-headers.html
您应该简单地发送带有值
X-XSS-Protection: 0
的 HTTP 标头(而不是 HTML 元元素),然后忘记此标头。任何其他选项(包括不发出此 HTTP 标头)都可能使您的网站或 Web 应用程序容易受到 XSS 攻击或数据泄漏。
有关更多详细信息,请参阅我对另一个相关问题的回答:https://stackoverflow.com/a/57802070/334451