微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Content-Security-Policy 设置中将 CaptchaMvc 生成的脚本标签设置为受信任

如何解决如何在 Content-Security-Policy 设置中将 CaptchaMvc 生成的脚本标签设置为受信任

我正在开发一个 ASP.NET MVC 5 Web 应用程序。在那里我使用 CaptchaMvc 作为表单。在我的安全标头中,我目前正在尝试设置内容安全策略。到目前为止,我已经将 sha256 哈希用于内联脚本标签。现在,对于包含 Web 表单的当前视图,sha256 散列是不可能的,因为验证码和相关联的 JavaScript(由 CaptchaMvc 内联包含)随调用而变化。

这是我在 Web.config 文件中的内容安全策略设置:

<add name="Content-Security-Policy" 
                     value="default-src 'self' cloudflare.com *.cloudflare.com; style-src 'self' cloudflare.com *.cloudflare.com 'unsafe-inline'; 
                     script-src 'self' 'sha256-o8zMclWJYgIhIDVcd55FVk+97ZrpWh4Gd0SF6eWFPEk=' 'sha256-3WOAJ+Z7i9X+sJK0IfMt3o9YbohSAMpGvixrBvGbfYs=' cloudflare.com *.cloudflare.com" />

但通过这些设置,我在浏览器控制台中收到此错误消息:

Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'sha256-o8zMclWJYgIhIDVcd55FVk+97ZrpWh4Gd0SF6eWFPEk=' 'sha256-3WOAJ+Z7i9X+sJK0IfMt3o9YbohSAMpGvixrBvGbfYs=' cloudflare.com *.cloudflare.com". Either the 'unsafe-inline' keyword,a hash ('sha256-HWFU+SLSoxcZeSq6cevv49inJIRmQr0b092KEfGBRw4='),or a nonce ('nonce-...') is required to enable inline execution.

目前唯一有效的选项是 unsafe-inline。但我不想使用它,因为它允许执行所有脚本标记。然后打开需要阻止的安全漏洞。

有谁知道我需要如何设置内容安全策略才能停止出现错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。