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)相关推荐

  1. http内容安全策略Content Security Policy(CSP)

    内容安全策略CSP是安全性的附加层,有助于检测和缓解某些类型的攻击,包括跨站点脚本(Cross Site Scripting (XSS) Software Attack | OWASP Foundat ...

  2. 正当防卫CSP(content security policy)

    同源策略致使不同域名下的资源不可互相访问,起到安全保护的作用,但这一策略有时会防卫过当,将安全可信的脚本也误认为不安全因素后报错: because it violates the following ...

  3. Content Security Policy的学习理解

    以下内容转载自 http://www.cnblogs.com/alisecurity/p/5924023.html 跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞. 为了防止它们,要采取很多编 ...

  4. Content Security Policy 入门教程

    From: http://www.ruanyifeng.com/blog/2016/09/csp.html 跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞. 为了防止它们,要采取很多编程措施, ...

  5. 内容安全策略(Content Security Policy)

    内容安全策略(Content Security Policy) 内容安全策略(Content Security Policy)是一种声明的安全机制,可以让网站运营者能够控制遵循CSP的用户代理(通常是 ...

  6. 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 ...

  7. 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 ...

  8. Refused to execute inline script because it violates the following Content Security Policy directive

    版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 问题描述 在利用表单向后台提交数据时,前端页面报错: Refused to execute i ...

  9. 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 ...

最新文章

  1. 富文本框让最大四百像素_TinyMCE 富文本编辑器 ━━ 基本配置
  2. Android动画之Property属性动画
  3. html获取随机字母,JavaScript实现4位随机验证码的生成
  4. mysql有状态无状态_有状态和无状态的对象区别
  5. mysql 安装导航_ubuntu下安装Mysql
  6. 在AJAX中可以使用的Response.Redirect 的冲突解决办法
  7. mysql事务保证幂等_事务与一致性:刚性or柔性
  8. python数字求和为什么得不出结果_WPS表格求和问题,只出公式不出结果数字
  9. 卡巴斯基KEY文件的类型选择
  10. postgresql 中文排序
  11. 信号与系统:综述【知识梳理】
  12. 文件存储NAS与对象存储OSS
  13. HDU - 6184 Counting Stars (无向图找三元环)
  14. 稽首文殊,寒山之士;南无普…
  15. 并发编程入门(五):Java并发包和Java8并发
  16. CSDN 如何修改用户名(CSDN ID)?
  17. 深入理解原子操作-底层基础
  18. 一些对模糊搜索的思考
  19. ffmpeg的api里av_free和av_freep的区别
  20. 阿里云短信验证服务详细基础教程

热门文章

  1. 刘振亚:以特高压电网引领中国能源互联网建设,以中国能源互联网实现碳减排目标
  2. 国办:3月底前三级公立医院全纳入卫健委满意度调查平台
  3. Docker 之 Docker 镜像
  4. Linux通过二进制文件安装RabbitMQ
  5. 团体程序设计天梯赛-练习集 L1-035 情人节
  6. 用R语言做自己的微信聊天记录词云
  7. S3C2440驱动开发(四)
  8. HTML元素分类:行内元素,块级元素,行内块元素;及其各自的特点
  9. 【Liunx】manjaro双系统安装教程
  10. 32岁,薪水被应届生倒挂,裸辞了