将IIS服务器配置为使用“Content-Security-Policy”标头

7kqas0il  于 2023-01-09  发布在  其他
关注(0)|答案(7)|浏览(914)

我需要在IIS中为“内容安全策略”、“X内容类型选项”和“X XSS保护”添加自定义标头。
我得到了添加这些头的过程,但我不确定这些键的值应该是什么。https://technet.microsoft.com/pl-pl/library/cc753133(v=ws.10).aspx
http://content-security-policy.com/
请建议。谢谢

yshpjwxd

yshpjwxd1#

从这篇文章来看,你似乎是直接在IIS配置文件中定义了内容安全策略(并依次填充了这些标题)。

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="Content-Security-Policy" value="default-src 'self';" />
        </customHeaders>
    </httpProtocol>
</system.webServer>

演示了如何做到这一点;在配置文件的httpProtocol部分,向customHeaders集合添加一个条目,其中包含名称(即"Content-Security-Policy")和一个定义要实现的CSP的值。在给出的示例中,实现了一个非常简单的CSP,它只允许加载本地站点(self)的资源。
链接的第二个资源列出了可以在customHeader中使用的不同选项及其有效值的示例。需要记住的一点是,后续选项必须以;分隔,并且字符串必须以最终的;结尾。

jgwigjjp

jgwigjjp2#

一个老问题,但既然谷歌下降你在这里...
我发现了一个很好的CSP选项“构建器”:
https://report-uri.io/home/tools/
现在,这似乎是一个“链接唯一的答案”,但事实上,链接是一个完全内置的CSP编辑器,你点击框,选择您的网站,你需要在您的CSP和CSP字符串回来配置为您(只是复制和粘贴到您的标题内容安全政策的结果).我不能希望复制的功能,因此在这个答案的链接.

pengsaosao

pengsaosao3#

开放式Web应用程序安全项目(OWASP)在其Content Security Policy Cheat Sheet上的“防止点击劫持”下有两个内容安全策略示例和一些有用的链接:
若要防止对您的内容进行任何分帧,请使用用途:

Content-Security-Policy: frame-ancestors 'none'

要仅允许您的站点,请用途:

Content-Security-Policy: frame-ancestors 'self'

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

Content-Security-Policy: frame-ancestors my-trusty-site.com

Mozilla开发者网络提供了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

下面是一个X-XSS-Protection example

X-XSS-Protection: 1; mode=block
6ovsh4lw

6ovsh4lw4#

在服务器2012 R2上:
1.打开IIS管理器。
1.单击IIS服务器主页。
1.双击HTTP响应标头。
1.单击右侧"操作"下的添加。
1.添加名称和值。

b5lpy0ml

b5lpy0ml5#

内容安全策略设置可能因站点而异,具体取决于脚本是本地的还是您使用的是外部CDN等。因此,为了尝试找出最适合您的应用的设置,您可以使用“仅报告”版本:
第一个月
“通过添加此标头而不是Content-Security-Policy,浏览器将不断告知不允许的内容,但仍允许它。这样,当您在生产中运行网站时,您可以密切关注控制台。当控制台中的所有错误消息消失时,您可以切换回原始标头。”ref.https://blog.elmah.io/content-security-policy-in-asp-net-mvc/

fnx2tebb

fnx2tebb6#

<add name="Content-Security-Policy" value="default-src 'unsafe-inline' 'self'; script-src 'unsafe-inline' 'self'; script-src-elem 'unsafe-inline' 'self' https://jquery.com; style-src 'unsafe-inline' 'self' https://fonts.googleapis.com; style-src-elem 'unsafe-inline' 'self' https://fonts.googleapis.com; font-src 'self' data: ;" />
euoag5mw

euoag5mw7#

您可以使用IIS URL重写来执行此操作:

<outboundRules>
                <rule name="Add CSP header">
                    <match serverVariable="RESPONSE_Content_Security_Policy" pattern=".*" />
                    <action type="Rewrite" value="default-src 'self'" />
                </rule>
            </outboundRules>

在web.config中使用customHeaders不适用于IIS上的FastCGI。
记住将RESPONSE_Content_Security_Policy添加到允许的服务器变量中。

相关问题