Content Security Policy介绍

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.

样式资源访问控制。

<lnk src="xxx">

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接口。

时间: 2024-10-10 09:51:47

Content Security Policy介绍的相关文章

XSS终结者:Content Security Policy(CSP)

Content Security Policy(CSP)简介 传统的web安全应该主要是同源策略(same origin policy).A网站的代码不能访问B网站的数据,每个域都和其他的域相互隔离,给开发者营造了一个安全沙箱.理论上这是非常聪明的做法,但是实际执行过程中,攻击者使用了各种高招可以推翻这套保护. XSS攻击者把恶意代码注入在网站常规数据里,这样就可以绕过浏览器的同源策略.浏览器相信来自安全域的所有代码.XSS Cheat Sheet是一个古老但是却很有代表性的攻击方式.一旦攻击者

Content Security Policy(CSP)简介(转)

Content Security Policy(CSP)简介 传统的web安全应该主要是同源策略(same origin policy).A网站的代码不能访问B网站的数据,每个域都和其他的域相互隔离,给开发者营造了一个安全沙箱.理论上这是非常聪明的做法,但是实际执行过程中,攻击者使用了各种高招可以推翻这套保护. XSS攻击者把恶意代码注入在网站常规数据里,这样就可以绕过浏览器的同源策略.浏览器相信来自安全域的所有代码. XSS Cheat Sheet 是一个古老但是却很有代表性的攻击方式.一旦攻

DVWA 黑客攻防实战(十五) 绕过内容安全策略 Content Security Policy (CSP) Bypass

看到标题,是否有点疑惑 CPS 是什么东东.简单介绍一下就是浏览器的安全策略,如果 标签,或者是服务器中返回 HTTP 头中有 Content-Security-Policy 标签 ,浏览器会根据标签里面的内容,判断哪些资源可以加载或执行.阮一峰老师也有关于CSP 的文章,大家可以看看 看回 DVWA.DVWA 中需求也是很简单的,输入被信任的资源,就能加载或执行资源了. 初级 初级篇,如果不看源码的话.看检查器(F12),也可以知道一些被信任的网站. 其他的网站,大家应该也比较熟悉.而当中的

Content Security Policy (CSP) 内容安全策略总结,及抵御 XSS 攻击

在浏览网页的过程中,尤其是移动端的网页,经常看到有很多无关的广告,其实大部分广告都是所在的网络劫持了网站响应的内容,并在其中植入了广告代码.为了防止这种情况发生,我们可以使用CSP来快速的阻止这种广告植入.而且可以比较好的防御dom xss. CSP使用方式有两种 1.使用meta标签, 直接在页面添加meta标签 <meta http-equiv="Content-Security-Policy" content="default-src 'self' *.xx.co

Method and system for providing security policy for linux-based security operating system

A system for providing security policy for a Linux-based security operating system, which includes a template policy module configured to set an authority using policy information of a downloaded application so that the template policy module can set

Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Security policy requir

今天升级Xcode 7.0 bata发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Security policy requires the use of a secure connection. Google后查证,iOS9引入了新特性App Transport Security (ATS).详情:App Transport Security (ATS) 新特性要求App内访问的网络必须使用H

The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.问题解决

didFailLoadWithError(): Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSUnderlyingError=0x7fce0c9ac400 {Error Domain=kCFEr

The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

1.xcode7/ios 访问网络报错:The resource could not be loaded because the App Transport Security policy requires the use of a secure connection. 解决方案: iOS9引入了新特性ATS,要求App内的访问网络必须使用HTTPS协议! 2.使用NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:

iOS9 出现 the resource could not be loaded because the app transport security policy requires the use of a secure connection 解决办法

今天更新了Xcode 7 正式版,App编译出现很多警告,在App运行的时候出现如下的提示......... the resource could not be loaded because the app transport security policy requires the use of a secure connection 资源不能被加载,因为该应用程序传输的安全策略要求使用安全连接 iOS9引入了新特性App Transport Security (ATS).详情:App Tra