issues
search
klxedu
/
blog
2
stars
0
forks
source link
CSP使用
#45
Open
songhuiqing88
opened
6 years ago
songhuiqing88
commented
6 years ago
CSP中指令名的含义
指令名
规范版本
含义
default-src
Level 1
加载JavaScript、图片、CSS、字体、AJAX、Frame和HTML5媒体等资源的默认策略
script-src
Level 1
定义合法的JavaScript源
style-src
Level 1
定义合法的CSS样式表源
img-src
Level 1
定义合法的图片源
connect-src
Level 1
适用于XMLHttpRequest (AJAX), WebSocket或EventSource。当不合法的请求发出时,浏览器会模拟一个404回复
font-src
Level 1
定义合法的字体源
object-src
Level 1
定义合法的插件源,例如
, <embed> 或
media-src
Level 1
定义合法的媒体源,例如HTML5中的
,
元素
frame-src
Deprecated
定义合法的框架源。使用 child-src 替代其更合适
sandbox
Level 1
针对请求的资源使用沙箱,类似于 iframe 的 sandbox 属性。沙箱适用于同源策略,禁用弹窗,被阻止的插件和脚本。保持空属性值以保留所有限制,也可以添加后面的值: allow-forms allow-same-origin allow-scripts allow-popups , allow-modals , allow-orientation-lock , allow-pointer-lock , allow-presentation , allow-popups-to-escape-sandbox ,和 allow-top-navigation
report-uri
Level 1
指定策略应用失败的URI,也可以在 Content-Security-Policy HTTP头后添加 -Report-Only 指示浏览器仅报告错误,但不阻止内容的加载
child-src
Level 2
定义web worker或者frame的合法源,例如
和
等
form-action
Level 2
定义
的 action 属性使用的合法源
frame-ancestors
Level 2
定义
等元素使用的合法源。将其设置为 none 大致等于 X-Frame-Options: DENY
plugin-types
Level 2
定义通过
和
元素调用的资源类型。例如加载
需要设置 application/x-java-applet
CSP中指令值的含义
上述的任何CSP指令均可以赋一下值,有效值类型的列表如下:
指令值
示例
含义
*
img-src *
通配符,允许任何URL接收 data: blob: filesystem: schemes
‘none’
object-src 'none'
拒绝加载任何资源
‘self’
script-src 'self'
允许加载同源资源(相同的协议、域名、端口)
data:
img-src 'self' data:
允许加载data编码的资源(例如图片的Base64编码)
domain.example.com
img-src domain.example.com
允许从指定的域名加载资源
*.example.com
img-src *.example.com
允许从example.com下的任何子域名加载资源
https://cdn.com
img-src
https://cdn.com
允许加载https://cdn.com下的资源
https:
img-src https:
仅允许加载https协议的资源
‘unsafe-inline’
script-src 'unsafe-inline'
允许使用内联元素,比如style属性,onclick,或script标签
‘unsafe-eval’
script-src 'unsafe-eval'
允许不安全的动态脚本执行,比如JavaScript的 eval()
CSP中指令名的含义
CSP中指令值的含义
上述的任何CSP指令均可以赋一下值,有效值类型的列表如下: