内容安全策略阻止对 *://www.google.com/recaptcha/api 的请求
Content security policy blocking requests to *://www.google.com/recaptcha/api
鉴于此链接,它似乎是内联脚本,例如用于在页面中插入 recaptcha 对象,通过
<script type="text/javascript"
src="http://www.google.com/recaptcha/api/challenge?k=your_public_key">
</script>
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=your_public_key"
height="300" width="500" frameborder="0"></iframe><br>
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field"
value="manual_challenge">
</noscript>
或通过
<script type="text/javascript" src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
跟
Recaptcha.create("your_public_key",
"element_id",
{
theme: "red",
callback: Recaptcha.focus_response_field
}
);
我总是收到一些关于内容安全策略的抱怨,尽管我的 manifest.json 显然允许像 url 这样的 http://www.google.com/recaptcha/api/js/recaptcha_ajax.js
我是否错过了一些非常明显的东西,使整个问题变得疯狂?
我只是花了两个小时来解决这个问题。对我来说,我认为对于这个例子,问题在于src
属性;也就是说,在http:
.更改引用,如下所示:
<script type="text/javascript"
src="https://www.google.com/recaptcha/api/challenge?k=your_public_key">
^ v
<iframe src="https://www.google.com/recaptcha/api/noscript?k=
height="300" width="500" frameborder="0"></iframe>
修复了问题。基本上,您正在尝试使用不安全的连接访问Google API,并且某些浏览器(例如Chrome)默认情况下不会呈现不安全的内容。
在 Chrome 扩展程序中,不安全http
无法通过 CSP.
列入白名单文档指出:
放宽默认策略
(...另一方面,如果您需要一些外部JavaScript或对象资源,可以通过将脚本应来自的特定 HTTPS 源列入白名单接受。将不安全的 HTTP 资源列入白名单将不起作用。这是有意为之的,因为我们希望确保可执行加载了扩展提升权限的资源正是所需的资源,但尚未被活动网络替换攻击者。由于中间人攻击既微不足道又无法通过 HTTP 检测,仅接受 HTTPS 源。
您应该将所有资源调用设置为协议相对 URL。基本上删除任何http:或https:,只需使用//
更多信息在这里http://www.paulirish.com/2010/the-protocol-relative-url/
在这里,在<脚本 src="中将 http://替换为//是否有效 http://...">?脚本>
- 如何在Google柱状图中动态添加行/列
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- 使用Google Visualization动态调用构造函数
- Firebase2(Firebase.google.com)推送通知-从外部管理
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- Google Adsense多次加载脚本
- 单击超链接时,如何使用Google Maps API v3缩放地图
- Google电子表格getValue([cell containing ])不返回制表符
- 实现一个建立在google.com之上的自定义搜索引擎
- 使用Google Maps API向标记添加多个字符
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 回调函数中传递参数的困难(Google Map API Markers)
- 内容安全策略阻止对 *://www.google.com/recaptcha/api 的请求
- 仅使用javascript,我如何点击网址(如www.google.com)并在我的页面上显示谷歌标志
- 为什么=javascript_include_tag"//www.google.com/jsapi"本
- 如何调动与http://www.google.com/gwt/x?u=的所有环节
- 未能在中加载资源:net::ERR_CONNECTION_RESEThttps://www.google-analyti
- GET https://www.google-analytics.com/ga.js net::ERR_TIMED_OU
- https://www.google-analytics.com/ga.js和https://ssl.google-an