Content Security Policy

https://content-security-policy.com/

The new Content-Security-Policy HTTP response header helps you reduce XSS risks on modern browsers by declaring what dynamic resources are allowed to load via a HTTP Header.

现代浏览器提供的防止XSS攻击的手段。服务器设置此响应头,规定本网站中的网页内容, 执行的内容访问的安全策略。

Directive(指令)

The Content-Security-Policy header value is made up of one or more directives (defined below), multiple directives are separated with a semicolon ;

This documentation is provided based on the Content Security Policy 1.0 W3C Candidate Recommendation

此响应头部值,由一个或者更多的指令构成, 如果是多个指令, 则指令之间以分好隔开。  符合 W3C候选标准。

default-src     'self' cdn.example.com   The default-src is the default policy for loading content such as JavaScript, Images, CSS, Font's, AJAX requests, Frames, HTML5 Media. See the Source List Reference for possible values.

规定默认源访问控制策略, 如果是self, 则表示可以引用自己网站的资源,  还可添加指定的其它网站域名。

script-src  'self' js.example.com   Defines valid sources of JavaScript.

脚本源访问控制。

<script type="text/javascript" src="xxx"/>

style-src   'self' css.example.com  Defines valid sources of stylesheets.

样式资源访问控制。

<link href="//sta.36krcnd.com/36krx2016-front/static/common-ab805c33f6f206dcc85e.css" rel="stylesheet">

img-src     'self' img.example.com  Defines valid sources of images.

图片资源访问控制。

<img src="">

connect-src     'self'  Applies to XMLHttpRequest (AJAX), WebSocket or EventSource. If not allowed the browser emulates a 400 HTTP status code.

ajax websocket eventsource 访问源控制。

font-src    font.example.com    Defines valid sources of fonts.

字体资源访问控制。

object-src  'self'  Defines valid sources of plugins, eg <object>, <embed> or <applet>.

嵌入式对象资源访问控制。

media-src   media.example.com   Defines valid sources of audio and video, eg HTML5 <audio>, <video> elements.

媒体源访问控制。

frame-src   'self'  Defines valid sources for loading frames. child-src is preferred over this deprecated directive.

框架源访问控制。

child-src   'self'  Defines valid sources for web workers and nested browsing contexts loaded using elements such as <frame> and <iframe>

代替frame-src, 确定页面中框架源访问控制。

form-action     'self'  Defines valid sources that can be used as a HTML <form> action.

允许表单提交的目标定义。

frame-ancestors     'none'  Defines valid sources for embedding the resource using <frame> <iframe> <object> <embed> <applet>. Setting this directive to 'none' should be roughly equivalent to X-Frame-Options: DENY

是否允许本页面被其它页面嵌入的控制。

Source List(源头内容列表)

All of the directives that end with -src support similar values known as a source list. Multiple source list values can be space separated with the exception of 'none' which should be the only value..

以src结尾的指令支持类似的值, 这些值列举如下。 多源头列表值,使用空格分开, 如果只有一个值“none”,则其实唯一的值,不能去其它值并存。

Source Value    Example     Description
*   img-src *   Wildcard, allows any URL except data: blob: filesystem: schemes.

允许任何URL,但是不允许 data blob filesystem 方案。

'none'  object-src 'none'   Prevents loading resources from any source.

不允许从任何源头下载资源。

'self'  script-src 'self'   Allows loading resources from the same origin (same scheme, host and port).

遵守同源策略。

data:   img-src 'self' data:    Allows loading resources via the data scheme (eg Base64 encoded images).

允许以data方案加载资源。

domain.example.com  img-src domain.example.com  Allows loading resources from the specified domain name.

允许从指定域名下载资源。

*.example.com   img-src *.example.com   Allows loading resources from any subdomain under example.com.

允许加载任何子域名和资源。

https://cdn.com     img-src https://cdn.com     Allows loading resources only over HTTPS matching the given domain.

允许以https方式加载指定域名的资源。

https:  img-src https:  Allows loading resources only over HTTPS on any domain.

只允许以https方式加载。

'unsafe-inline'     script-src 'unsafe-inline'  Allows use of inline source elements such as style attribute, onclick, or script tag bodies (depends on the context of the source it is applied to)

允许使用行内源元素,这里将这些元素定义为 unsafe。

'unsafe-eval'   script-src 'unsafe-eval'    Allows unsafe dynamic code evaluation such as JavaScript eval()

允许使用不安全的eval接口。

Content Security Policy介绍的更多相关文章

  1. Content Security Policy (CSP) 介绍

    当我不经意间在 Twitter 页面 view source 后,发现了惊喜. <!DOCTYPE html> <html lang="en"> <h ...

  2. 网页安全政策"(Content Security Policy,缩写 CSP)

    作者:阿里聚安全链接:https://www.zhihu.com/question/21979782/answer/122682029来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  3. Content Security Policy的学习理解

    以下内容转载自 http://www.cnblogs.com/alisecurity/p/5924023.html 跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞. 为了防止它们,要采取很多编 ...

  4. Content Security Policy (CSP)内容安全策略总结

    跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞. 为了防止它们,要采取很多编程措施,非常麻烦.很多人提出,能不能根本上解决问题,浏览器自动禁止外部注入恶意脚本?这就是"网页安全政策& ...

  5. Content Security Policy减少劫持

    Content Security Policy减少劫持 什么是CSP? CSP是由单词 Content Security Policy 的首单词组成,是HTML5带给我们的一套全新主动防御的体系,旨在 ...

  6. Content Security Policy 入门教程

    阮一峰文章:Content Security Policy 入门教程

  7. 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-...')

    /********************************************************************************* * Refused to exec ...

  8. options.html:1 Refused to load the script 'xxxx' because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".

    /********************************************************************************* * options.html:1 ...

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

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

随机推荐

  1. luogu4159 迷路 (矩阵加速)

    考虑如果只有距离为1的边,那我用在时间i到达某个点的状态数矩阵 乘上转移矩阵(就是边的邻接矩阵),就能得到i+1时间的 然后又考虑到边权只有1~9,那可以把边拆成只有距离为1的 具体做法是一个点拆成9 ...

  2. cf366C Dima and Salad (dp)

    是一个01分数规划的形式,只不过已经帮你二分好了. 把b乘过去,再减回来,找和等于0的a的最大值就行了 #include<bits/stdc++.h> #define pa pair< ...

  3. [JLOI2016/SHOI2016]侦察守卫(树形dp)

    小R和B神正在玩一款游戏.这款游戏的地图由N个点和N-1条无向边组成,每条无向边连接两个点,且地图是连通的.换句话说,游戏的地图是一棵有N个节点的树. 游戏中有一种道具叫做侦查守卫,当一名玩家在一个点 ...

  4. js,jquery 获取滚动条高度和位置, 元素距顶部距离

    一,获取滚动条高度和位置 jQuery 获取览器显示区域的高度: $(window).height();  获取浏览器显示区域的宽度:$(window).width(); 获取页面的文档高度:$(do ...

  5. [CTSC2018]暴力写挂——边分树合并

    [CTSC2018]暴力写挂 题面不错 给定两棵树,两点“距离”定义为:二者深度相加,减去两棵树上的LCA的深度(深度指到根节点的距离) 求最大的距离. 解决多棵树的问题就是降维了. 经典的做法是边分 ...

  6. Methods for follow-up research of exome analysis:外显子后续分析研究思路总结

    外显子后续分析研究思路一般有以下几种(Methods for follow-up research of exome analysis): 1.对突变频率.突变类型.突变方式进行统计分析 Mutati ...

  7. 第八节,配置分布式TensorFlow

    由于随着神经网络层数的增多,需要训练的参数也会增多,随之而来需要的数据集就会很大,这样会造成需要更大的运算资源,而且还要消耗很长的运算时间.TensorFlow提供了一个可以分布式部署的模式,将一个训 ...

  8. POJ 2253 Frogger (Floyd)

    Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:57696   Accepted: 18104 Descript ...

  9. falsk简单项目示例

    目录结构: 源码及分析 https://github.com/freshman411/Flask_test/

  10. SQL语法基础之高级应用

    SQL语法基础之高级应用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.存储过程与函数 1>.CREATE PROCEDURE 用来创建存储过程 mysql> ? ...