配置IIS服务器以使用"Content-Security-Policy"标头

Ger*_*rry 12 security iis xss

我需要在IIS中为"Content-Security-Policy","X-Content-Type-Options"和"X-XSS-Protection"添加自定义标头.

我得到了添加这些标题的过程,但我不确定这些键的值应该是多少. https://technet.microsoft.com/pl-pl/library/cc753133(v=ws.10).aspx

http://content-security-policy.com/

请建议.谢谢

F. *_*n Q 20

这篇文章中,您似乎可以直接在IIS配置文件中定义内容安全策略(并依次填充这些标题).链接帖子中给出的示例,

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="Content-Security-Policy" value="default-src 'self';" />
        </customHeaders>
    </httpProtocol>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

演示了如何做到这一点; 在您的配置文件中,在该httpProtocol部分中,向customHeaders包含名称的集合添加一个条目(即"Content-Security-Policy",定义您希望实现的CSP的值.在给出的示例中,实现了一个非常简单的CSP,它只允许来自本地的资源self要加载的site().

您链接的第二个资源列出了您可以在其中使用的不同选项customHeader,以及它们的有效值示例.要记住的一件事是后续选项必须是;分离的,并且字符串必须以final结尾;.


小智 10

在 Server 2012 R2 上:

  1. 打开 IIS 管理器。
  2. 单击 IIS 服务器主页。
  3. 双击 HTTP 响应标头。
  4. 单击右侧操作下的添加。
  5. 添加名称和值。


Ang*_*Top 7

一个古老的问题但是因为谷歌让你在这里...

我为CSP选项找到了一个很棒的"构建器":

https://report-uri.io/home/tools/

现在这似乎是一个"仅链接答案",但事实上,该链接是一个完全构建的CSP编辑器,您单击框,在CSP中选择您需要的网站,并为您配置CSP字符串(只需复制并将结果粘贴到Content-Security-Policy的标题中.我无法希望在此答案中复制功能因此链接.


Joh*_*hnC 6

打开Web应用程序安全项目(OWASP)在防止点击劫持下的内容安全策略备忘单上有几个内容安全策略示例和一些有用的链接:

要阻止您的内容的所有框架使用:

Content-Security-Policy: frame-ancestors 'none' 
Run Code Online (Sandbox Code Playgroud)

要仅允许您的网站,请使用:

Content-Security-Policy: frame-ancestors 'self' 
Run Code Online (Sandbox Code Playgroud)

要允许受信任的域(my-trusty-site.com),请执行以下操作:

Content-Security-Policy: frame-ancestors my-trusty-site.com
Run Code Online (Sandbox Code Playgroud)

Mozilla Developers Network拥有Content-Security-PolicyX-ContentTypeOptions的完整语法和示例:

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/

X-Content-Type-Options: nosniff
Run Code Online (Sandbox Code Playgroud)

这是一个X-XSS-Protection示例:

X-XSS-Protection: 1; mode=block
Run Code Online (Sandbox Code Playgroud)


Jef*_*ler 5

根据脚本是本地还是使用外部 CDN 等,内容安全策略设置可能因站点而异。因此,为了尝试找出最适合您的应用程序的设置,您可以使用仅报告版本:

<add name="Content-Security-Policy-Report-Only" value="default-src 'self'" />
Run Code Online (Sandbox Code Playgroud)

根据此博客条目

通过添加此标头而不是Content-Security-Policy,浏览器将在不允许某些内容时不断提示,但无论如何都允许它。这样,您在生产环境中运行网站时就可以密切关注控制台。当控制台中的所有错误消息都消失后,您可以切换回原始标头。