如何在 IIS 中启用内容安全策略

问题描述 投票:0回答:1

我正在尝试将内容安全策略添加到 Windows 2019 服务器上的 IIS。我曾经发布过类似的内容,但发现我走错了路。在 IIS 中,我将转到 HTTP 响应标头,单击 [添加],然后将“Content-Security-Policy”放入“名称”中,并将“default-src 'self';”在价值中。但是当它保存在 IIS 中时,内联脚本或样式都不起作用,页面也变得一团糟。

我在 https://content-security-policy.com 上找到了示例和解释,它提供了描述和正确的语法,不仅允许内联 css,还允许来自服务器的脚本、图像等:

"The default-src directive defines the default policy for fetching resources such as JavaScript, Images, CSS, Fonts, AJAX requests, Frames, HTML5 Media."
EXAMPLE DEFAULT-SRC POLICY
default-src 'self' cdn.example.com;

"default-src 'self' Allows loading resources from the same origin (same scheme, host and port)."

因此,在 IIS 中我将内容安全策略修改为:

default-src 'self' www.mydomainname.net;

但是我的网页仍然忽略样式和脚本! 我在 IIS 中做错了什么,或者也许我只是不明白它应该如何工作? 通过添加此 Content-Security-Policy 值,它应该允许来自同一服务器的脚本和样式。 那么,为什么不呢?

javascript css iis content-security-policy
1个回答
0
投票

但是当将其保存在 IIS 中时,内联脚本或样式都不起作用,并且页面一团糟。

我认为您可能会混淆内联脚本和外部脚本之间的区别。只需参考this doc并检查它们的区别: enter image description here

简而言之,你提到的配置主要是针对外部脚本的。在这种情况下,对于内联 javascript/style,您需要在 CSP 标头中添加以下值:

script-src 'unsafe-inline'; style-src 'unsafe-inline';
© www.soinside.com 2019 - 2024. All rights reserved.