- 内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。
- CSP2 在向后兼容有明确提及的不一致
- 为使CSP可用, 你需要配置你的网络服务器返回 Content-Security-Policy HTTP头部
- X-Content-Security-Policy头部的提法, 那是旧版本,你无须再如此指定它
- 除此之外, <meta> 元素也可以被用来配置该策略, 例如
<meta http-equiv="Content-Security-Policy" content="default-src ‘self‘; img-src https://*; child-src ‘none‘;">
威胁
跨站脚本攻击
———————————————————————————————————————
跨站脚本攻击(Cross-site scripting)
- 跨站脚本攻击Cross-site scripting (XSS)是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。
- 攻击者可以突破网站的访问权限,冒充受害者
- 以下2种情况下,容易发生XSS攻击:
- 从一个不可靠的链接进入到一个web应用程序。
- 没有过滤掉恶意代码的动态内容被发送给web用户。(可以上传动态内容得接口没有过滤恶意代码)
- 恶意内容一般包括 JavaScript,但是,有时候也会包括HTML,FLASH。
XSS攻击可以分为3类:存储型(持久型)、反射型(非持久型)、基于DOM。
存储型XSS
- 注入型脚本永久存储在目标服务器上。当浏览器请求数据时,脚本从服务器上传回并执行。(当前网站支持上传数据,但是对数据得内容没有进行过滤。)
- 例如:上传一个图片,但是图片得实际路径指向一个脚本的url,由于脚本url在未设置CSP时支持跨域,当该图片被其他用户加载时就加载运行了该脚本。当前网站的个人信息就会被该脚本以合法的方式获取
反射型XSS(非持久性XSS)
- 当用户点击一个恶意链接,或者提交一个表单,或者进入一个恶意网站时,注入脚本进入被攻击者的网站
- Web服务器将注入脚本,比如一个错误信息,搜索结果等 返回到用户的浏览器上。
- 这种方式是利用某些特别的接口,这些接口返回的数据和提交的内容相关,但又未对提交的内容进行过滤。导致服务器返回的内容把恶意代码注入到了客户端浏览器中。
- 例如:在旧版的浏览器中,input的值会写入value属性中
<input value=‘默认值可以修改‘ type=‘text‘></input>
,如果某个返回的数据如下就会向客户端浏览器注入恶意代码
返回value值为 '/><script>...dosome...</script><input value='
这时渲染的input标签会变为 <input value=''/><script>...dosome...</script><input value='' type='text'></input>
JS代码就会被注入执行了
基于DOM的XSS(本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。)
- 浏览器自身有安全漏洞,用户访问了恶意网站,这些具有针对这些漏洞进行攻击的脚本就会利用这些漏洞绕过浏览器安全机制获取信息
- 这种攻击危害较小,只针对浏览器版本没有及时更新且访问了恶意网站的用户
安全 - 内容安全策略(CSP)(未完)
原文:https://www.cnblogs.com/qq3279338858/p/11104192.html