缺少内容安全策略标头 - chrome和firefox问题

时间:2017-08-29 16:24:13

标签: html google-chrome asp-classic content-security-policy iis-8.5

我必须修复Classic ASP应用程序的Missing Content Security Policy Header问题。我们在Web.config中添加了以下内容

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

在IE中发布更改应用程序正在运行,但在Mozilla和Chrome中,应用程序无法正常呈现(css未正确加载)。

如果我也会在特定的asp页面中添加相同的内容(Response.AddHeader“Content-Security-Policy”,“default-src”),则会出现同样的问题。

请告知。

1 个答案:

答案 0 :(得分:0)

您可能希望更好地熟悉CSP(内容安全策略)的功能。从安全角度来看,实际上是一个好主意。

在未明确设置策略的情况下激活策略(在本例中为“default-src”)与将其设置为“none”相同。那么你的设置是什么......

<add name="Content-Security-Policy" value="default-src" />

...告诉浏览器不接受来自任何来源的资源。您已经说过此页面的默认允许来源是“none”。没有链接图像,没有CSS,没有脚本。你已经全力以赴。

更好的默认值可能是:default-src self;

这将允许您链接到同一域上的CSS和JS文件。可能会添加style-src self unsafe-inline;,但我不会对script-src推荐相同内容。

这完全取决于您的网站当然。如果您使用内联<script><style>标记,请查看CSP nonces - 它们非常易于使用,并且比unsafe-inline更安全。如果您的页面上堆满了“onclick”,则必须进行一些清理。 (这种类型的编码已经被劝阻了十多年,但你可能正在处理旧代码,就像我每天都做的那样。)

就个人而言,我没有在服务器级别设置它。我在PHP中设置它,如果某个特定页面出于某种原因需要更宽松的安全性(例如使用谷歌图表,由于eval()语句需要非常松散的CSP,这允许灵活性。)好吧,那你又不能使用服务器级别的nonce,因为它们必须与页面同时生成。