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

CSP简介

Content Security Policy(CSP),内容(网页)安全策略,为了缓解潜在的跨站脚本问题(XSS攻击),浏览器的扩展程序系统引入了内容安全策略(CSP)这个概念。

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

两种方法启用 CSP

一种是通过 HTTP 响应头信息的Content-Security-Policy字段。
一种是通过网页的标签。

<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src example.org third-party.org; child-src https:">

script-src:脚本:只信任当前域名
object-src:不信任任何URL,即不加载任何资源
style-src,样式表:只信任example.org和third-party.org
child-src:必须使用HTTPS协议加载。这个已从Web标准中删除,新版本浏览器可能不支持。
其他资源:没有限制其他资源

Low级别

从请求的response包中可以看到,content-security-policy策略只允许加载当前域名以及 pastebin.com example.com 等域名的。

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

直接去pastebin中写一个脚本,输入提交即可。

Medium级别

需要script指定nonce

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

'unsafe-inline' 代表可以执行诸如 onclick 等事件或 script 标签内的内容这类 javascript

后者是指如果你要使用 script 标签加载 javascript, 你需要指明其 nonce 值,比如

<script nonce="TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=">alert('hacked')</script>

将上方代码输入输入框即可

High级别

构造 Payload

 <script src="source/jsonp.php?callback=alert('hacked');"></script>

原文:https://blog.csdn.net/weixin_42555985/article/details/88382976

上一篇:Content Security Policy (CSP)内容安全策略总结


下一篇:Refused to execute inline event handler because it violates the following Content Security Policy directive: "xxx". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...')