问题标签 [content-security-policy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
30516 浏览

facebook - Refused to connect to [url] because it violates the following Content Security Policy directive

I am the author of a Chrome extension that allows to translate status updates and comments right on Facebook: https://chrome.google.com/webstore/detail/facebook-translate/plofenifjagmdikfcobngnfmmnfmphin

For some days now, my users and me are getting an error in the error console that sais:

Refused to connect to 'https://api.microsofttranslator.com/V2/Http.svc/Translate?appId=&text=Chrome-Integration%3A+Google+bringt+Google+Now+auf+Desktop-PCs&to=en&contentType=text%2Fhtml' because it violates the following Content Security Policy directive: "connect-src https://.facebook.com http://.facebook.com https://.fbcdn.net http://.fbcdn.net *.facebook.net .spotilocal.com: https://.akamaihd.net ws://.facebook.com:* http://*.akamaihd.net".

In my chrome extension I did set the content security policy as follow:

"content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'"

The URIs in the error console, however, are FB URIs only so that's why I'm thinking Facebook did update their site to restrict access to remote URIs. I'm not certain if it could be a Chrome issue, so sorry if I started the topic on the wrong stackoverflow network. :)

Can anyone confirm (and maybe point me to a possible solution for) this issue? Thanks everyone!

0 投票
2 回答
1132 浏览

internet-explorer-9 - IE 支持中的内容安全策略

我知道内容安全策略是 IE10 中的一项新功能。

想知道是否有任何第 3 方供应商通过附加组件 (BHO) 为 IE9 和旧版本提供实施?

谢谢,

0 投票
1 回答
5596 浏览

content-security-policy - 当内容安全政策到位时,我如何显示视频内容?

我希望有一个简单的答案。

我正在使用“fancybox”工具在页面上嵌入来自 Vimeo 的视频。Fancybox 本质上创建了一个 iFrame 并嵌入了 Vimeo 播放器。它适用于所有浏览器——直到我打开内容安全策略。然后 ID 工作(因为它没有实现 CSP),但 Chrome 和 Firefox 只是挂起显示的“正在加载”图像。

我试过这个 CSP:

当然,我的想法是我允许媒体和我的 iframe 都来自 vimeo。但它不起作用。有谁知道为什么?

更新:我删除了仅显示视频的页面的 CSP,并使用 Google 的开发人员工具查看了内容。我发现 Vimeo 从其他 Vimeo 子域、vimeocdn.com、conviva.com、lphbs.com 甚至亚马逊的 aws 中引入了大量其他内容。所以 - 如果您使用 Vimeo(和 YouTube?),您要么有很长的外部站点列表,要么只是不使用 CSP?任何见解将不胜感激!

0 投票
1 回答
1667 浏览

google-chrome - 如何使用内容安全策略 -CSP 允许来自每个网站的远程脚本?

我从以下网址阅读了内容安全政策:http: //developer.chrome.com/extensions/contentSecurityPolicy.html

那里提到:“如果您需要一些外部 JavaScript 或对象资源,您可以通过将应该接受脚本的安全来源列入白名单来在有限程度上放宽政策”

该示例显示您需要在 manifest.json 中添加这一行:

但是,如果我不仅要支持https://example.com,还要支持每个网站?顺便说一句 - 是否也可以包括“评估的 JavaScript”:'unsafe-eval'到那个?我应该写什么?

0 投票
3 回答
6979 浏览

google-chrome-extension - Firebase + Chrome 内容安全策略设置?

我正在尝试在 Chrome 扩展背景页面中使用 Firebase,但它看起来正在执行内联脚本,由于安全问题,这是不允许的。

我目前已将 CSP 设置为:

我能够加载初始 Firebase 脚本,但在调用 new Firebase('my-firebase-url') 时,出现以下错误:

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“。未捕获的 ReferenceError:未定义 pRTLPCB

Firebase 团队(或任何人)是否可以提供任何解决方法或建议,或者解释为什么内联执行脚本?

0 投票
2 回答
3226 浏览

javascript - JavaScript click() 方法仅在 Chrome 扩展中有效一次

我正在尝试在 Chrome 扩展程序中下载多个文件。下面的代码创建一个文件的虚拟链接,然后触发下载文件的 .click() 事件。问题是只有第一个 .click() 事件触发下载。随后的 .click() 事件将被忽略。

这里manifest.json

这里是sample.js

我试过了:

很惊讶为什么简单地保存多个文件如此困难。感谢任何帮助。

0 投票
1 回答
1075 浏览

javascript - 使用 CSP 在 Web Worker 中启用“新功能”

我无法new Function在 Web Worker 中工作。我有一个生成 Web Worker 的 HTML 页面。这个 Web Worker 通过new Function(str). 我正在尝试在打包的 Chrome 应用程序中使用它,该应用程序需要使用类似eval代码的页面在清单中明确列为沙盒页面。

现在,有两种选择:

  • 列出要沙盒化的页面如果这样做,我可以使用new Function,但我无法生成 Web Worker,因为我无法发出任何请求(沙盒页面具有唯一的来源)。new Worker(...)抛出一个SECURITY_ERR.
    • new Function在沙箱中工作
    • new Worker由于唯一来源而在沙箱中失败
  • 不要列出要沙盒化的页面。如果这样做,我可以生成一个 Web Worker,但该 Worker 不能使用new Function,因为它没有被沙盒化。new Function(...)抱怨EvalError使用它。
    • new Function由于类似而在非沙盒中eval失败
    • new Worker在非沙盒中工作

我的 CSP 如下:

我该怎么做才能new Function在 Web Worker 中工作?

0 投票
1 回答
6993 浏览

google-analytics - Google Analytics 和 Content-Security-Policy 标头

Content-Security-Policy HTTP 标头旨在阻止来自不受信任服务器的内联脚本和资源。但是,示例 Google Analytics(分析)代码段取决于两者。该领域的最佳实践是什么?

这是我当前使用的 Content-Security-Policy 标头:

到目前为止,我已经完成了以下工作:

我在我的 html 中添加了两个脚本标签:

google-analytics.js 使用 _setAccount 和 _trackPageview 设置 _gaq 数组。

我将 ga.js 的域添加到 script-src。

我注意到 ga.js 正在加载两个图像,所以我将它们添加到 img-src。

有什么我想念的吗?谷歌会改变我的事情并打破这一切吗?有官方推荐吗?

0 投票
1 回答
2696 浏览

security - 允许某些脚本设置内联样式

我正在使用 csp 标头保护我的页面。我设置了X-Content-Security-PolicyX-Webkit-CSP。为以下值:

一切正常,但我在 chrome 中收到以下错误。我还没有在其他浏览器中测试它。

引用当前域上脚本中的一行,它试图插入一些包含内联样式的 HTML。有没有办法允许我在 script-src 中列入白名单的脚本执行此操作?对于托管在 ajax.googleapis.com 上的 jquery,我遇到了同样的错误。

0 投票
2 回答
804 浏览

javascript - Firefox OS 模拟器中的 JavaScript 问题(CSP 警告)

我目前正在 Firefox OS 上测试区域推文教程应用程序(您可以通过创建区域推文应用程序链接找到完整的源代码),我遇到了以下问题:应用程序调用了 Twitter API,但是未收到响应,但出现以下警告/错误

这里有什么问题?这是没有收到对 API 请求的响应的提示,还是有其他原因?我在 Firefox 和 Chrome 浏览器(在 Windows 上)上测试了该应用程序,它运行良好。

我还可以补充一点,我测试了Firefox OS 样板应用程序,这个应用程序似乎工作得很好。我看到这两个 Web 应用程序之间的唯一区别是 Area Tweet 使用jQuery,而样板文件则没有。我对 Area Tweet 的原始源代码所做的一项修改是从localhost加载 jQuery 库(以符合 Mozilla 打包策略),但这似乎不是问题。