CSP策略及绕过方法

XSS的时候经常要绕过CSP,这里总结一下


CSP策略

一个CSP头由多组CSP策略组成,中间由分号分隔,就像这样:

Content-Security-Policy: default-src 'self' www.baidu.com; script-src 'unsafe-inline'

其中每一组策略包含一个策略指令和一个内容源列表

一、常用的策略指令:

  • default-src

default-src 指令定义了那些没有被更精确指令指定的安全策略。这些指令包括:

  • child-src
  • connect-src
  • font-src
  • img-src
  • media-src
  • object-src
  • script-src
  • style-src
  • script-src

script-src定义了页面中Javascript的有效来源

  • style-src

style-src定义了页面中CSS样式的有效来源

  • img-src

img-src定义了页面中图片和图标的有效来源

  • font-src

font-src定义了字体加载的有效来源

  • connect-src

connect-src定义了请求、XMLHttpRequest、WebSocket 和 EventSource 的连接来源。

  • child-src

child-src 指定定义了 web workers 以及嵌套的浏览上下文(如和

2.在Chrome下,iframe标签支持csp属性,这有时候可以用来绕过一些防御,例如"http://xxx"页面有个js库会过滤XSS向量,我们就可以使用csp属性来禁掉这个js库。


六、meta标签

meta标签有一些不常用的功能有时候有奇效:
meta可以控制缓存(在header没有设置的情况下),有时候可以用来绕过CSP nonce。


meta可以设置Cookie(Firefox下),可以结合self-xss利用。


你可能感兴趣的:(CSP策略及绕过方法)