一个抽象人的小站

# CSP(Content-Security-Policy)

study Tags: 无标签 阅读: 227

csp介绍:
CSP是网页安全政策(Content Security Policy)的缩写。是一种由开发者定义的安全性政策申明,通过CSP所约束的责任指定可信的内容来源,(内容可以是指脚本、图片、style 等远程资源)。通过CSP协定,可以防止XSS攻击,让web处一个安全运行的环境中。

基本格式:

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

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

default-src 指令定义了那些没有被更精确指令指定的安全策略 除了default-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 以及嵌套的浏览上下文(如<frame>和<iframe>)的源。

关键字

'none'
代表空集;即不匹配任何 URL。两侧单引号是必须的。
'self'
代表和文档同源,包括相同的 URL 协议和端口号。两侧单引号是必须的。
'unsafe-inline'
允许使用内联资源,如内联的<script>元素、javascript: URL、内联的事件处理函数和内联的<style>元素,两侧单引号是必须的。
'unsafe-eval'
允许使用 eval() 等通过字符串创建代码的方法。两侧单引号是必须的。

CSP绕过

几种情况:
default-src none self的时候
使用meta标签跳转绕过

<meta http-equiv="refresh" content="1;url=http://localhost:8080/csp2.html" />

unsafe-inline

使用window.localtion或window.open之类进行跳转

  window.location="http://localhost:8080/csp2.html";
发表评论