5

我想知道规范中的引用:(https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html

为了获得最大的好处,作者需要将所有内联脚本和样式移到外部脚本中,例如移到外部脚本中,因为用户代理无法确定内联脚本是否被攻击者注入。

找出所有内联脚本是一项耗时的任务。

我的问题是从安全的角度来看的。通过将所有内联脚本(例如 JavaScript)提取到外部源,您真的可以获得任何安全优势吗?

谢谢

4

1 回答 1

6

关键部分是

用户代理无法确定内联脚本是否被攻击者注入。

为了提供保护,CSP 必须防止攻击者控制的子字符串导致代码运行。由于用户代理不知道 HTML 的哪些部分是由不受信任的输入指定的,哪些来自受信任的开发人员编写的模板,因此它必须假设最坏的情况——任何属性或元素都可能被攻击者控制。

通过将所有内联脚本(例如 JavaScript)提取到外部源,您真的可以获得任何安全优势吗?

不会。提取您想要运行的脚本不会提供任何安全优势,它只是让您在仍然使用 CSP 的同时运行您想要的脚本。

安全优势来自能够调用浏览器的 HTML 解析器,而不会无意中执行滥用域权限或窃取机密的脚本。

于 2013-04-03T07:09:20.823 回答