【问题标题】:Disallowing unneeded HTTP headers for non-HTML resources禁止非 HTML 资源不需要的 HTTP 标头
【发布时间】:2018-04-09 18:41:00
【问题描述】:

Sonar 测试套件 makes the interesting point 认为发送 HTTP 标头应该被视为不好的做法

  • 内容安全策略
  • X-Content-Security-Policy
  • X 框架选项
  • X-UA 兼容
  • X-WebKit-CSP
  • X-XSS-保护

发送非 HTML 资源时。

我目前使用web.config配置我的IIS服务器,即

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="Content-Security-Policy" value="default-src 'self' ; img-src 'self' data:; script-src 'self' cdnjs.cloudflare.com/ajax/libs/html5shiv/" />
                <add name="X-Frame-Options" value="DENY" />
                <add name="X-Content-Type-Options" value="nosniff" />
                <add name="X-Permitted-Cross-Domain-Policies" value="none" />
                <add name="X-UA-Compatible" value="IE=edge" />
                <add name="X-Xss-Protection" value="1; mode=block" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</configuration>

但是无论发送的资源类型如何,该配置都会发送这些标头。 如何让 IIS 有选择地将这些标头添加到正确类型的文件中?

【问题讨论】:

    标签: iis http-headers web-config mime-types content-security-policy


    【解决方案1】:

    您可以使用IIS UrlRewrite module(IIS 扩展)并仅为 html 资源添加自定义标头。 检查这个旧的question

    【讨论】:

    • 请不要只发布对其他 Stack Overflow 问题的链接答案。相反,投票/标记以关闭为重复,或者,如果问题不是重复的,定制此特定问题的答案。
    • 谢谢,但链接的问题是关于基于文件类型的 添加 标头。我想 remove 标头(我知道我可以通过将标头添加到所有 html 资源而不是其他资源来实现我想要的,但我宁愿反其道而行之,我很想知道是否有办法实现这一点)。
    • @Nick:对不起,下次我会更具体。 Clément:我试图回答您的最后一个问题“如何使 IIS 有选择地将这些标头添加到正确类型的文件中?”
    猜你喜欢
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多