要理解 csp. 得先晓得这个玩意到底是为了防备什么的. 首先 csp 的策略 xss. 跨站脚本攻打. 这个也是网页危害最大, 最常见的网页安全漏洞. 而 csp 则是规定网页能够加载和执行哪些脚本和款式.
应用形式
首先. csp 的应用形式分为两种. 一种通过 header 申请头输入. 大抵如下
Content-Security-Policy: ....
另外一种形式则是通过 meta 标签来进行. 如下.
<meta http-equiv="Content-Security-Policy" content="script-src'self'; object-src'none'; style-src cdn.example.org third-party.org; child-src https:">
能限度什么
首先. csp 能够限度 js、image、css、web font,ajax 申请,iframe,多媒体等. 大抵的反对的能够看一这里.
chrome 的 csp
chrome 在 25 的时候就引入了 csp 策略. 在插件 3 版本的时候依照如下来应用
{
// 内容限度策略 csp
"content_security_policy": {...},
// csp 内容策略 embedder
"cross_origin_embedder_policy": {"value": "require-corp"},
// csp 关上策略
"cross_origin_opener_policy": {"value": "same-origin"},
}
这里的 csp 是严格版本. 只能反对如下的申明.
script-src: self|none|Anyurl
object-src: self|none|Anyurl
worker-src: self|none|Anyurl
其中, 值的解释如下
self 容许来自雷同起源的内 (雷同的协定. 域名和端口)
none 不容许任何内容
anyurl 容许加载指定域名下的内容
csp 限度策略
在 chrome 间接依照如下的形式进行应用
"content_security_policy": {"extension_pages": "script-src'self';object-src'none'"}
则容许加载本站的脚本, 禁止加载其余内容. 如果将 script-src 设置为 none. 则无奈加载 js.
最初
请妥善应用 csp. 避免本人的内容无奈加载. 源代码