【问题标题】:how to set Http header X-XSS-Protection如何设置 Http 标头 X-XSS-Protection
【发布时间】:2020-05-12 08:43:09
【问题描述】:

我试着把这个:

   <meta http-equiv="X-XSS-Protection" content="0">

&lt;head&gt; 标签中但没有运气。我正在尝试摆脱讨厌的 IE,防止跨站点脚本

【问题讨论】:

  • 尝试将其作为 HTTP 标头发送,也许?
  • 我该怎么做?抱歉,我是设置标题的新手

标签: internet-explorer http-headers xss


【解决方案1】:

我怀疑它只是一个元标记。您可能必须告诉您的网络服务器将其作为真正的标头发送。

在 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”添加到同一个地方。

【讨论】:

  • 正确,不支持作为 HTTP 标头。
  • 我是否将其添加到我网站根目录中的 .htaccess 文件中?
  • 如果你想让它适用于整个网站,是的。
  • 我在 Coldfusion 中试过这个: 但它对我不起作用。对 Coldfusion 有任何想法吗?
  • @AdilMalik:抱歉,我从来没有和 CF 合作过。不过,这些文档看起来是对的。标题只是没有显示在响应中,还是有错误,还是什么?
【解决方案2】:

如果您使用的是 .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

【讨论】:

  • 标签关闭错误,您需要将这两行放在 customheaders 标签内 &lt;remove name="X-Powered-By" /&gt; &lt;add name="X-XSS-Protection" value="1; mode=block" /&gt;
  • @shadyshrif 标签关闭在代码上很好。看看:
  • @mahmoud-samy 请停止错误地编辑这个答案。自动关闭标签不是解决方案,您在添加之前关闭删除标签,这是错误的。请查看我发布的链接。您是否测试过您尝试编辑的解决方案?
  • @Equiman 在尝试现有答案后我已经更改了它。建议的更改现在实际上正在生产中运行。
  • 可疑警长建议的更改是正确的,否则会显示错误。
【解决方案3】:

在 Apache 中,你需要编辑配置文件,这个文件可以是:

/etc/apache2/apache2.conf

/etc/apache2/httpd.conf

您可以在文件末尾添加这些行以启用 HTTP Header XSS 保护:

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

注意:如果mod_headers 在主 Apache 核心之外(未编译到 Apache),那么您将使用 .so 而不是 .c - 即。 &lt;IfModule mod_headers.so&gt;

之后,保存更改,然后使用以下命令重新启动 apache:

sudo service apache2 重启

sudo 服务 httpd 重启

希望这会有所帮助! :)

【讨论】:

  • 我知道这是很久以前的事了,但我在搜索某些东西时遇到了它,如果你把它放在一个.htaccess 文件,是吗?
【解决方案4】:

ASP Classic,这个标签会做:

<% Response.AddHeader "X-XSS-Protection", "1" %>

【讨论】:

  • 我正在使用 ASP Web 表单,我应该在哪里添加这个?
【解决方案5】:

在某些情况下,如果使用.htaccess,则需要使用双引号:

Header set x-xss-protection "1; mode=block"

【讨论】:

    【解决方案6】:
    # 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/securing-your-website-with-.htaccess/.htaccess-http-headers.html

    【讨论】:

      猜你喜欢
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 2022-06-17
      • 1970-01-01
      相关资源
      最近更新 更多