Google Recaptcha v2中的内容安全政策问题

时间:2019-04-16 09:11:18

标签: asp.net-mvc recaptcha content-security-policy

我搜索了许多与此相关的问题。但是没有什么能解决我的问题。 我正在asp.net mvc5应用程序中使用google recaptcha v2。它在谷歌浏览器中工作正常。但是它在Firefox和Edge浏览器中显示出一些错误。我怀疑这与内容安全策略标头有关。

Firefox中的错误

Content Security Policy: Ignoring “'unsafe-inline'” within script-src: ‘strict-dynamic’ specified

Content Security Policy: Ignoring “https:” within script-src: ‘strict-dynamic’ specified

Content Security Policy: Ignoring “http:” within script-src: ‘strict-dynamic’ specified

边缘错误

  

允许脚本和相同的原始来源访问可能会损害沙盒iframe的安全性。

由于此错误,重新验证无法正常工作,因为每次都会超时

我试图在web.config中添加像这样的csp标头

<system.webServer>
<httpProtocol>
    <customHeaders>
        <add name="Content-Security-Policy" value="script-src 'self' 'unsafe-inline' https://www.google.com https://www.google.com/recaptcha/api.js https://www.gstatic.com" />
    </customHeaders>
</httpProtocol>
</system.webServer> 

但这不能正常工作,因为所有其他文件都被浏览器阻止了,因为我的页面被破坏了

1 个答案:

答案 0 :(得分:1)

似乎脚本的失败与CSP有关。这些并不是您真正遇到的错误;只是注意。

在CSP中,某些策略会覆盖其他策略,因此您会注意到由于使用策略B而忽略了策略A。那么,为什么要完全插入策略A?为了与不了解政策B的旧版浏览器兼容。

例如:我使用CSP随机数,但也输入“ unsafe-inline”。 IE无法理解随机数,因此使用“不安全内联”规则。现代浏览器会忽略“不安全内联”并使用随机数。在Firefox控制台中,我收到与您得到的类似的通知