我假设这只是规范的一个简单误解。然而,我在包含受沙盒保护的iFrames中的脚本方面遇到了问题。具体来说,我正在处理的代码如下。
在top.html中:
在 framed.html 中
在Chrome中运行此文件时,会出现以下错误:
在top.html中:
<iframe src="framed.html" sandbox="allow-scripts"></iframe>
在 framed.html 中
...
<head>
<meta http-equiv="Content-Security-Policy" content="script-src example.com">
<script src="http://example.com/script.js"></script>
</head>
...
在Chrome中运行此文件时,会出现以下错误:
为什么会阻止脚本加载?我知道没有拒绝加载脚本 'http://example.com/script.js',因为它违反了以下内容安全策略指令:"script-src localhost:9000"。
allow-same-origin
,iFrame会得到一个完全唯一的起源,不等于任何其他起源。因此,script-src 'self'
不起作用。但是,我正在尝试从CSP明确调用的起源加载脚本。你有什么想法吗?更新:创建JSFiddle以展示问题。