Content Security Polic (网页安全政策,缩写 CSP)
CSP是一种由开发者定义的安全性政策性申明,通过CSP所约束的的规责指定可信的内容来源(这里的内容可以指脚本、图片、iframe、fton、style等等可能的远程的资源)。通过CSP协定,让WEB处于一个安全的运行环境中。
CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。
两种方法可以启用 CSP。
一种是通过 HTTP 头信息的Content-Security-Policy的字段
Content-Security-Policy: script-src 'self'; object-src 'none';style-src cdn.example.org third-party.org; child-src https:
另一种是通过网页的<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:">
资源加载限制指令表
指令
|
指令值示例
|
说明
|
---|---|---|
default-src | 'self' cnd.a.com |
定义针对所有类型(js、image、css、web font,ajax请求,iframe,多媒体等)资源的默认加载策略,某类型资源如果没有单独定义策略,就使用默认的。 |
script-src | 'self' js.a.com | 定义针对JavaScript的加载策略。 |
style-src | 'self' css.a.com | 定义针对样式的加载策略。 |
img-src | 'self' img.a.com | 定义针对图片的加载策略。 |
connect-src | 'self' |
针对Ajax、WebSocket等请求的加载策略。不允许的情况下,浏览器会模拟一个状态为400的响应。 |
font-src | font.a.com | 针对Web Font的加载策略。 |
object-src | 'self' | 针对<object>、<embed>或<applet>等标签引入的flash等插件的加载策略。 |
media-src | media.a.com | 针对<audio>或<video>等标签引入的html多媒体的加载策略。 |
frame-src | 'self' | 针对frame的加载策略。 |
sandbox | allow-forms |
对请求的资源启用sandbox(类似于iframe的sandbox属性)。 |
report-uri | /report-uri |
告诉浏览器如果请求的资源不被策略允许时,往哪个地址提交日志信息。 特别的:如果只想让浏览器汇报日志,而不阻止任何内容。可以改用Content-Security-Policy-Report-Only响应头。 |
指令值组合说明
指令值
|
指令示例
|
说明
|
---|---|---|
* | img-src * | 允许任何内容。 |
'none' | img-src 'none' | 不允许任何内容。 |
'self' | img-src 'self' | 允许来自相同来源的内容(相同的协议、域名和端口)。 |
data | img-src data | 允许data:协议(例如base64编码的图片)。 |
www.a.com | img-src img.a.com | 允许加载指定域名的资源。 |
*.a.com | img-src *.a.com | 允许加载a.com任何子域的资源。 |
https://img.com | img-src https://img.com | 允许加载img.com的https资源(协议需匹配)。 |
https: | img-src https: | 允许加载https资源。 |
'unsafe-inline' | script-src 'unsafe-inline' |
允许加载inline资源(例如常见的style属性,onclick,inline js和inline css等等)。 |
'unsafe-eval' | script-src 'unsafe-eval' | 允许加载动态js代码,例如eval()。 |
运营商劫持临时解决方案
<!--脚本加载白名单 【临时解决方案,后续还是要使用https来解决这个问题】--><meta http-equiv="Content-Security-Policy" content="script-src 'unsafe-inline' 'unsafe-eval' *.sjzhushou.com *.xunlei.com">
浏览器兼容性以及相关资料
- http://caniuse.com/#feat=contentsecuritypolicy
- http://www.html5rocks.com/en/tutorials/security/content-security-policy/
Content Security Polic (网页安全政策,缩写 CSP)相关推荐
- http内容安全策略Content Security Policy(CSP)
内容安全策略CSP是安全性的附加层,有助于检测和缓解某些类型的攻击,包括跨站点脚本(Cross Site Scripting (XSS) Software Attack | OWASP Foundat ...
- 正当防卫CSP(content security policy)
同源策略致使不同域名下的资源不可互相访问,起到安全保护的作用,但这一策略有时会防卫过当,将安全可信的脚本也误认为不安全因素后报错: because it violates the following ...
- Content Security Policy的学习理解
以下内容转载自 http://www.cnblogs.com/alisecurity/p/5924023.html 跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞. 为了防止它们,要采取很多编 ...
- Content Security Policy 入门教程
From: http://www.ruanyifeng.com/blog/2016/09/csp.html 跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞. 为了防止它们,要采取很多编程措施, ...
- 内容安全策略(Content Security Policy)
内容安全策略(Content Security Policy) 内容安全策略(Content Security Policy)是一种声明的安全机制,可以让网站运营者能够控制遵循CSP的用户代理(通常是 ...
- because it violates the following Content Security Policy directive: “default-src ‘none‘“
在打开页面时浏览器报如下错误: Refused to load the script 'http://xx.xx.xx.xx:xxxxx/livereload.js?snipver=1' becaus ...
- Vue打包后出现的bug -favicon.ico' because it violates the following Content Security Policy direc
打开vue的项目,但是页面显示的是Cannot GET,打开控制台之后,发现有一篇红色报错. //Refused to load the image 'http://localhost:8080/fa ...
- Refused to execute inline script because it violates the following Content Security Policy directive
版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 问题描述 在利用表单向后台提交数据时,前端页面报错: Refused to execute i ...
- Refused to load the image 'URL' because it violates the following content security polity diretive
转载地址:https://www.cnblogs.com/xiaoxiaoluoye/p/6945044.html 深入学习地址:https://www.cnblogs.com/Hwangzhiyou ...
最新文章
- 富文本框让最大四百像素_TinyMCE 富文本编辑器 ━━ 基本配置
- Android动画之Property属性动画
- html获取随机字母,JavaScript实现4位随机验证码的生成
- mysql有状态无状态_有状态和无状态的对象区别
- mysql 安装导航_ubuntu下安装Mysql
- 在AJAX中可以使用的Response.Redirect 的冲突解决办法
- mysql事务保证幂等_事务与一致性:刚性or柔性
- python数字求和为什么得不出结果_WPS表格求和问题,只出公式不出结果数字
- 卡巴斯基KEY文件的类型选择
- postgresql 中文排序
- 信号与系统:综述【知识梳理】
- 文件存储NAS与对象存储OSS
- HDU - 6184 Counting Stars (无向图找三元环)
- 稽首文殊,寒山之士;南无普…
- 并发编程入门(五):Java并发包和Java8并发
- CSDN 如何修改用户名(CSDN ID)?
- 深入理解原子操作-底层基础
- 一些对模糊搜索的思考
- ffmpeg的api里av_free和av_freep的区别
- 阿里云短信验证服务详细基础教程