这是相对于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
Mozillas CSP是否会阻止默认情况下从书签执行Javascript?
可以这样配置吗?
我正在尝试使用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.)
我对 …
我正在制作谷歌浏览器扩展程序,我想使用谷歌地图.问题是,当我运行我的脚本然后它给了我这个错误
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
我是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
我希望这个问题有一个简单的答案。
我正在使用“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?任何见解将不胜感激!
我想对我的 Web 应用程序使用内容站点保护。如果你还没有听说过它,简而言之:它允许我禁用任何嵌入到我的网络应用程序中的 javascript,帮助防止 XSS。
结果是,我所有的 javascript 代码都必须在外部文件中。
大多数 javascript 'library/framework' 代码已经是,但通常我的页面将包含至少几行 JS 代码,实例化与特定页面相关的组件。
例如,我有一个假设的注册页面。在注册页面的底部,我有以下代码:
var registrationForm = new MyApp.registrationValidator($('.regform'));
registrationForm.init();
Run Code Online (Sandbox Code Playgroud)
这个假想的代码得到了对注册表的引用,可以注册所有的验证码。
现在我必须将此代码移动到外部文件。我可以:
选项 A:为每个页面创建一个小的 .js 文件,该文件只执行特定于该页面的代码。
选项 B:在 javascript 文件中执行我所有的“实例化代码”。我只会检测页面上是否有任何“.regForm”css 类,并且仅在它们出现在页面上时才实例化我的对象。
选项 C:给我的<body>
标签一个 id 或类,并根据一个大开关执行正确的代码。
总而言之,选项 B 是最好的,如果不是因为我觉得拥有大量初始化代码是个坏主意。
我主要想知道的是,您是否有过这种情况的经验,您是如何解决的?
我注意到在更新到谷歌浏览器(21.0.1180.89)后,我在开发者选项卡中收到了大量错误; 特别是如果我访问我自己的phpMyAdmin网站.
对于跨站脚本,它们都是相同的并且是某种安全性; 有什么我可以解决的吗?
Unrecognized Content-Security-Policy directive 'allow'.
Unrecognized Content-Security-Policy directive 'options'.
Run Code Online (Sandbox Code Playgroud) 我想使用内容安全策略,使我的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) 我已将我的安全策略定义为:
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).
有任何想法吗?谢谢!
我正在使用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
javascript ×7
firefox ×2
jquery ×2
security ×2
django ×1
facebook ×1
google-api ×1
google-maps ×1
mathjax ×1
mozilla ×1
phpmyadmin ×1
safari ×1
web ×1