Chrome 18 Dev/Canary刚刚发布,并且content_security_policy在某些扩展的清单中将需要.
我正在尝试让CSP为内联脚本工作,但我不知道我做错了什么或者这是否是Chrome 18错误.
manifest.json的:
{
"name": "CSP Test",
"version": "1.0",
"manifest_version": 2,
"options_page": "test.html",
"content_security_policy": "default-src 'unsafe-inline'"
}
Run Code Online (Sandbox Code Playgroud)
的test.html:
<html><head>
<script type="text/javascript">
alert("hello");
</script>
</head></html>
Run Code Online (Sandbox Code Playgroud)
在Chrome 18中,此解压扩展无法加载,显示错误:
![无法从'[扩展名目录]'加载扩展程序. 'content_security_policy'的值无效.](https://i.stack.imgur.com/xguv2.png)
如果我更改'unsafe-inline'为'self',扩展加载正常,但alert()不起作用,并且选项页面的控制台包含错误:
由于Content-Security-Policy,拒绝执行内联脚本.
在Chrome 16中,使用'unsafe-inline'让扩展程序加载正常并且也能alert()正常工作.但是,在Chrome 16中,替换'unsafe-inline'为'foo'让扩展加载,但当然不会让alert()工作,所以也许Chrome 18比16更严格,但......
是default-src 'unsafe-inline'居然无效,或者这是一个错误?我可以使用什么CSP值来alert()在Chrome 18中工作?
根据下面接受的答案,内联脚本不再适用于Chrome 18中的扩展程序.alert()需要将其放在自己的JavaScript文件中.
google-chrome google-chrome-extension content-security-policy
我正在开发一个谷歌Chrome 打包应用程序,当我把沙盒放入manifest.json:
{
"manifest_version": 2,
"name": "WM32216",
"version": "2.1",
"minimum_chrome_version": "23",
"permissions":["webview", "https://ajax.googleapis.com/*"],
"sandbox":{
"pages":["index.html"]
},
"app": {
"background": {
"scripts": ["main.js"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
onclick我的锚标签上的事件有效,应用程序的流程已完成,除此之外,CSS样式表中的图标无法加载.
我error从控制台得到了一个
File not found ,
但那些只是字体所以对我来说很好,
最大的问题是,iframe中的视频无法播放,而且我在Font之前得到了额外的错误:
VIDEOJS:错误:(代码:4 MEDIA_ERR_SRC_NOT_SUPPORTED)无法加载媒体,因为服务器或网络出现故障或者格式不受支持.
不允许加载本地资源:blob:null/b818b32c-b762-4bd9 -...
当我删除manifest.json文件中的沙箱时,一切都很好,控制台中没有关于字体的错误,
但是,当我点击/单击我的锚点标记,其中有一个点击事件在js中加载一个新函数我得到以下控制台错误:
拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:"default-src'self'blob:filesystem:chrome-extension-resource:".要么是'unsafe-inline'关键字,哈希('sha256 -...'),要么是nonce('nonce -...')来启用内联执行.另请注意,'script-src'未显式设置,因此'default-src'用作后备.
很抱歉很长的细节,
我只需要帮助,因为我已经在这里呆了3天了.
我正在学习使用Cordova和jquery mobile,我有以下错误:
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"default-src'self'data:gap:https://ssl.gstatic.com'unsafe-eval'".可以使用'unsafe-inline'关键字,散列('sha256-iacGaS9lJJpFDLww4DKQsrDPQ2lxppM2d2GGnzCeKkU =')或nonce('nonce -...')来启用内联执行.另请注意,'script-src'未显式设置,因此'default-src'用作后备.
我的代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<title>Hello World</title>
<script>
$(document).ready(function()
{
$("#tryit").click(function() {
document.getElementById("msg").innerHTML = "hello";
});
});
</script>
</head>
<body>
<button id="tryit">Try it</button>
<div id="msg"></div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在课堂上,我写道:
cordova create hello2 com.example.hello2 hello2 …Run Code Online (Sandbox Code Playgroud)