内容安全策略CSP

2020-06-08  本文已影响0人  发愤图强的敏敏子

1、内容安全策略CSP的是什么?

之前我们给大家讲同源策略(协议、域名、端口相同)时讲到,不同源资源之间无法正常情况下会有一些限制,如:

        1、Cookie、LocalStorage 和 IndexDB 无法读取

        2、DOM无法获得

        3、AJAX请求不能发送

但是实际应用中,一个有很多时候我们需要在多个不同域名的资源中相互访问。那么这个时候除了之前讲到的document.domain、<script>标签、WebSocket协议等方法还有什么比较安全又方便的方法吗?这就是今天要讲的内容安全策略CSP。

csp

CSP是浏览器的扩展程序系统引入的一种内容安全策略,该策略允许加载同源的图片、脚本、AJAX和CSS资源,并阻止加载其他任何资源。简单的说就是一个可跨域访问白名单:

CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。

CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。

2、CSP的使用

(1)在HTTP Header上使用(首选)

"Content-Security-Policy:" 策略"Content-Security-Policy-Report-Only:" 策略

(2)在HTML上使用

<metahttp-equiv="content-security-policy"content="策略"><metahttp-equiv="content-security-policy-report-only"content="策略">

Meta 标签与 HTTP 头只是行式不同而作用是一致的,如果 HTTP 头与 Meta 定义同时存在,则优先采用 HTTP 中的定义。如果用户浏览器已经为当前文档执行了一个 CSP 的策略,则会跳过 Meta 的定义。如果 META 标签缺少 content 属性也同样会跳过。

上一篇 下一篇

猜你喜欢

热点阅读