小编Mik*_*est的帖子

内容安全政策:无法在Chrome扩展程序中加载Google API

这是相对于Chrome扩展程序.我正在尝试使用Google Chart API的简单版本

我在我的html文档"popup.html"中有这个代码,它是在Icon上点击时加载的.

<!doctype html>
<html>
<head>
  <script type="text/javascript" src="js/libs/jquery-1.8.0.min.js"></script>
  <script type="text/javascript" src="js/popup.js"></script>
  <script type="text/javascript" src="http://www.google.com/jsapi?key=xxxxxxxxxxx"></script>

  [...]
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

拒绝加载脚本"http://www.google.com/jsapi?key=xxxxxxxxxxx",因为它违反了以下内容安全策略指令:"script-src'sself'chrome-extension-resource:".

我知道它是相对于权限的东西,我试图修改我的Manifest文件,但没有成功:

{
  [...]
  "manifest_version": 2,
  "permissions": ["http://*.google.com/"],
  "content_security_policy": "script-src 'self' http://www.google.com; object-src 'self'",
}
Run Code Online (Sandbox Code Playgroud)

任何的想法?

javascript google-api google-chrome-extension content-security-policy

30
推荐指数
2
解决办法
4万
查看次数

19
推荐指数
2
解决办法
5117
查看次数

CSP:如何允许给定URI前缀的不安全eval(Firefox)

我正在尝试使用MathJax作为我们的Web应用程序的一部分,该应用程序使用非常严格的内容安全策略(CSP).问题是MathJax被编码为使用eval()[确切地说,形式Function()],CSP默认不认为是安全的.

我目前正在使用以下CSP标头:

X-Content-Security-Policy: allow 'self'; img-src *; media-src *; frame-src *; font-src *; frame-ancestors 'none'; style-src *; report-uri '/:save-csp-violation';
Run Code Online (Sandbox Code Playgroud)

这导致MathJax 2.0代码失败,因为它使用Function().我试图Function()仅允许位于路径下相同原点的MathJax的unsafe-eval(ie )/:static/math/.为此,我尝试添加

unsafe-eval '/:static/math/*'
Run Code Online (Sandbox Code Playgroud)

使完整的标题看起来像

X-Content-Security-Policy: allow 'self'; img-src *; media-src *; frame-src *; font-src *; frame-ancestors 'none'; style-src *; report-uri '/:save-csp-violation'; unsafe-eval '/:static/math/*'
Run Code Online (Sandbox Code Playgroud)

但我仍然无法使用Firefox 13.0来运行代码.我收到Firefox Web Console(位于Tools - Web Developer)的错误消息:

[10:09:59.072] call to Function() blocked by CSP @ http://localhost:8080/:static/math/2.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML:29
Run Code Online (Sandbox Code Playgroud)

但是,我没有收到"报告 - uri"的CSP报告.(如你所见,我目前正在通过自定义localhost端口运行测试而不使用SSL,以防有所不同.之前的冒号static不是拼写错误,我保留所有以冒号开头的路径部分供内部使用应用程序,所有用户内容可以自由定义其他URL.)

我对 …

javascript security firefox mathjax content-security-policy

14
推荐指数
1
解决办法
2万
查看次数

谷歌地图api脚本由于内容安全策略而加载

我正在制作谷歌浏览器扩展程序,我想使用谷歌地图.问题是,当我运行我的脚本然后它给了我这个错误

Refused to load script from 'https://maps.googleapis.com/maps/api/js?key=XXXXXXXXXXXXXXXX&sensor=false' because of Content-Security-Policy.
Run Code Online (Sandbox Code Playgroud)

这是我的清单文件

{
  "name": "Name",
  "version": "1.0",
  "manifest_version": 2,
  "background": { 
    "scripts": [
      "js/script.js"
    ] 
  },
  "description": "Desc",
  "browser_action": {
    "default_icon": "images/icon.png",
    "default_title": "Title",
    "default_popup": "html/popup.html"
  },
  "permissions": [ 
    "http://*/",
    "http://*.google.com/",
    "http://localhost/*"
  ],
  "content_security_policy": "script-src 'self' http://google.com; object-src 'self'"
Run Code Online (Sandbox Code Playgroud)

}

我正在添加这样的脚本

<script src="../js/libs/jquery.js"></script>
  <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=XXXXXXXXXXXXXX&sensor=false"></script>
  <script src="../js/plugins/easing.js"></script>
  <script src="../js/script.js"></script>
Run Code Online (Sandbox Code Playgroud)

为什么我一次又一次地收到这个错误?请帮忙...

更新一个

我将这两个权限添加到清单文件但仍无效

"https://maps.google.com/*",
"https://maps.googleapis.com/*",
Run Code Online (Sandbox Code Playgroud)

更新两个

我也使用了这种content_security_policy

"content_security_policy": "default-src 'none'; style-src 'self'; script-src 'self'; connect-src https://maps.googleapis.com; img-src https://maps.google.com"
Run Code Online (Sandbox Code Playgroud)

但上面对我来说也不起作用

javascript jquery google-maps google-chrome-extension content-security-policy

10
推荐指数
1
解决办法
2万
查看次数

拒绝连接到[url],因为它违反了以下内容安全策略指令

我是Chrome扩展程序的作者,可以直接在Facebook上翻译状态更新和评论:https://chrome.google.com/webstore/detail/facebook-translate/plofenifjagmdikfcobngnfmmnfmphin

几天来,我的用户和我在错误控制台中出现错误:

拒绝连接到' 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 '因为它违反了以下内容安全策略指令:"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".

在我的chrome扩展程序中,我确实设置了内容安全策略如下:

"content_security_policy": "脚本-src的'自我' https://ssl.google-analytics.com ;对象-src的'自我'"

但是,错误控制台中的URI只是FB URI,这就是为什么我认为Facebook确实更新了他们的站点以限制对远程URI的访问.我不确定它是否可能是Chrome问题,如果我在错误的stackoverflow网络上启动主题,那就很抱歉.:)

任何人都可以确认(也许可以指出一个可能的解决方案)这个问题?感谢大家!

facebook google-chrome google-chrome-extension content-security-policy

7
推荐指数
1
解决办法
2万
查看次数

当内容安全策略到位时,如何显示视频内容?

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

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

我已经尝试过这个 CSP:

<add header="Content-Security-Policy" value="default-src 'self'; media-src 'self' http://player.vimeo.com; frame-src 'self' http://player.vimeo.com; " />
<add header="X-Content-Security-Policy" value="default-src 'self'; media-src 'self' http://player.vimeo.com; frame-src 'self' http://player.vimeo.com; " />
<add header="X-WebKit-CSP" value="default-src 'self'; media-src 'self' http://player.vimeo.com; frame-src 'self' http://player.vimeo.com; " />
Run Code Online (Sandbox Code Playgroud)

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

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

content-security-policy

6
推荐指数
1
解决办法
7004
查看次数

Javascript 和 CSP - 最佳实践

我想对我的 Web 应用程序使用内容站点保护。如果你还没有听说过它,简而言之:它允许我禁用任何嵌入到我的网络应用程序中的 javascript,帮助防止 XSS。

结果是,我所有的 javascript 代码都必须在外部文件中。

大多数 javascript 'library/framework' 代码已经是,但通常我的页面将包含至少几行 JS 代码,实例化与特定页面相关的组件。

例如,我有一个假设的注册页面。在注册页面的底部,我有以下代码:

var registrationForm = new MyApp.registrationValidator($('.regform'));
registrationForm.init();
Run Code Online (Sandbox Code Playgroud)

这个假想的代码得到了对注册表的引用,可以注册所有的验证码。

现在我必须将此代码移动到外部文件。我可以:

选项 A:为每个页面创建一个小的 .js 文件,该文件只执行特定于该页面的代码。

  • 优点 - 简单且相对较快
  • 缺点 - 这是每个页面的额外 js 文件,我更希望能够将所有 javascript 最小化到一个文件中以减少请求。

选项 B:在 javascript 文件中执行我所有的“实例化代码”。我只会检测页面上是否有任何“.regForm”css 类,并且仅在它们出现在页面上时才实例化我的对象。

  • 优点 - 用于实例化的单一位置。如果页面上的组件具有正确的 css 类,它们将神奇地开始工作。
  • 缺点 - 如果我的应用程序增长很多,将会有很多特定页面可能不需要的初始化代码。

选项 C:给我的<body>标签一个 id 或类,并根据一个大开关执行正确的代码。

  • 优点:仍然可以压缩为单个 .js 文件,我不需要每页一个 .js 文件。
  • 缺点:我想我觉得这有点难看。

总而言之,选项 B 是最好的,如果不是因为我觉得拥有大量初始化代码是个坏主意。

我主要想知道的是,您是否有过这种情况的经验,您是如何解决的?

javascript jquery content-security-policy

5
推荐指数
1
解决办法
1177
查看次数

无法识别的Content-Security-Policy指令

我注意到在更新到谷歌浏览器(21.0.1180.89)后,我在开发者选项卡中收到了大量错误; 特别是如果我访问我自己的phpMyAdmin网站.

对于跨站脚本,它们都是相同的并且是某种安全性; 有什么我可以解决的吗?

Unrecognized Content-Security-Policy directive 'allow'. 
Unrecognized Content-Security-Policy directive 'options'. 
Run Code Online (Sandbox Code Playgroud)

google-chrome phpmyadmin content-security-policy

5
推荐指数
1
解决办法
2万
查看次数

如何删除内容安全策略的不安全内联代码?

我想使用内容安全策略,使我的Django Web应用程序安全,没有任何不安全的内联代码.虽然很容易将大多数JavaScript代码移动到外部文件,但我也有一段内联代码,我不知道修复.我正在使用Django,我在Django模板上下文中有一些变量,我想pqww到JavaScript.所以目前我只是将其输出为内联JavaScript.但由于CSP,这不起作用.

<script type="text/javascript">
    /* <![CDATA[ */
    var documentURL = '{% filter escapejs %}{{ document.get_document_url }}{% endfilter %}';
    /* ]]> */
</script>
Run Code Online (Sandbox Code Playgroud)

javascript django content-security-policy

5
推荐指数
1
解决办法
1479
查看次数

为什么我的内容安全策略无处不在,但Safari

我已将我的安全策略定义为:

default-src 'self'; script-src 'self'; frame-src 'self';  style-src 'self' 'unsafe-inline'; 
Run Code Online (Sandbox Code Playgroud)

(我在几页的头部仍然有CSS).

我对Firefox或Chrome没有任何问题(IE还不支持CSP)但是,当我尝试在Safari中测试时,我得到一些错误,如:

Refused to load style from 'http://localhost/styles/alliance.css' because of Content-Security-Policy.
.
.
.
Refused to load image from 'http://localhost/images/Landing1.jpg' because of Content-Security-Policy.
.
.
.
Refused to load script from 'http://localhost/JQuery/jquery-1.7.2.min.js' because of Content-Security-Policy.
Run Code Online (Sandbox Code Playgroud)

图像应该由default-src覆盖,其他两个列为"Self",所以我不知道为什么Safari不接受我的图像和脚本.我没有Mac,所以我在Windows上使用Safari(5.1.7).

有任何想法吗?谢谢!

safari web content-security-policy

5
推荐指数
1
解决办法
4308
查看次数

内容安全政策错误?

我正在使用chrome扩展并使用内容脚本在页面上执行此代码

chrome.browserAction.onClicked.addListener(function(tab) {
try{
$('input[type="submit"]').click();
}
catch(err){
($('input[type="button"]').attr('onclick'))(event);
}

});
Run Code Online (Sandbox Code Playgroud)


我收到此错误
"由于Content-Security-Policy拒绝应用内联样式."
manifest.json代码:

{
  "name": "sites faxana ads clicking exception",
  "version": "1.0",
  "background_page": "background.html",
  "permissions": [
    "tabs", "<all_urls>"
  ],
  "browser_action": {
  "default_icon": "icon.png",
    "name": "Make this page red"
  },
  "content_security_policy": "default-src 'none'; script-src 'self'"
}
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome google-chrome-extension content-security-policy

2
推荐指数
1
解决办法
5271
查看次数