我想知道规范中的引用:(https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html)
为了获得最大的好处,作者需要将所有内联脚本和样式移到外部脚本中,例如移到外部脚本中,因为用户代理无法确定内联脚本是否被攻击者注入。
找出所有内联脚本是一项耗时的任务。
我的问题是从安全的角度来看的。通过将所有内联脚本(例如 JavaScript)提取到外部源,您真的可以获得任何安全优势吗?
谢谢
我想知道规范中的引用:(https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html)
为了获得最大的好处,作者需要将所有内联脚本和样式移到外部脚本中,例如移到外部脚本中,因为用户代理无法确定内联脚本是否被攻击者注入。
找出所有内联脚本是一项耗时的任务。
我的问题是从安全的角度来看的。通过将所有内联脚本(例如 JavaScript)提取到外部源,您真的可以获得任何安全优势吗?
谢谢
关键部分是
用户代理无法确定内联脚本是否被攻击者注入。
为了提供保护,CSP 必须防止攻击者控制的子字符串导致代码运行。由于用户代理不知道 HTML 的哪些部分是由不受信任的输入指定的,哪些来自受信任的开发人员编写的模板,因此它必须假设最坏的情况——任何属性或元素都可能被攻击者控制。
通过将所有内联脚本(例如 JavaScript)提取到外部源,您真的可以获得任何安全优势吗?
不会。提取您想要运行的脚本不会提供任何安全优势,它只是让您在仍然使用 CSP 的同时运行您想要的脚本。
安全优势来自能够调用浏览器的 HTML 解析器,而不会无意中执行滥用域权限或窃取机密的脚本。