要了解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. 防止自己的内容无法加载. 源代码
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。