目录搜索
GuidesAccess control CORSAuthenticationBrowser detection using the user agentCachingCaching FAQCompressionConditional requestsConnection management in HTTP 1.xContent negotiationContent negotiation: List of default Accept valuesCookiesCSPMessagesOverviewProtocol upgrade mechanismProxy servers and tunnelingProxy servers and tunneling: Proxy Auto-Configuration (PAC) filePublic Key PinningRange requestsRedirectionsResources and specificationsResources and URIsResponse codesServer-Side Access ControlSessionGuides: BasicsBasics of HTTPChoosing between www and non-www URLsData URIsEvolution of HTTPIdentifying resources on the WebMIME TypesMIME types: Complete list of MIME typesCSPContent-Security-PolicyContent-Security-Policy-Report-OnlyCSP: base-uriCSP: block-all-mixed-contentCSP: child-srcCSP: connect-srcCSP: default-srcCSP: font-srcCSP: form-actionCSP: frame-ancestorsCSP: frame-srcCSP: img-srcCSP: manifest-srcCSP: media-srcCSP: object-srcCSP: plugin-typesCSP: referrerCSP: report-uriCSP: require-sri-forCSP: sandboxCSP: script-srcCSP: style-srcCSP: upgrade-insecure-requestsCSP: worker-srcHeadersAcceptAccept-CharsetAccept-EncodingAccept-LanguageAccept-RangesAccess-Control-Allow-CredentialsAccess-Control-Allow-HeadersAccess-Control-Allow-MethodsAccess-Control-Allow-OriginAccess-Control-Expose-HeadersAccess-Control-Max-AgeAccess-Control-Request-HeadersAccess-Control-Request-MethodAgeAllowAuthorizationCache-ControlConnectionContent-DispositionContent-EncodingContent-LanguageContent-LengthContent-LocationContent-RangeContent-TypeCookieCookie2DateDNTETagExpectExpiresForwardedFromHeadersHostIf-MatchIf-Modified-SinceIf-None-MatchIf-RangeIf-Unmodified-SinceKeep-AliveLarge-AllocationLast-ModifiedLocationOriginPragmaProxy-AuthenticateProxy-AuthorizationPublic-Key-PinsPublic-Key-Pins-Report-OnlyRangeRefererReferrer-PolicyRetry-AfterServerSet-CookieSet-Cookie2SourceMapStrict-Transport-SecurityTETkTrailerTransfer-EncodingUpgrade-Insecure-RequestsUser-AgentUser-Agent: FirefoxVaryViaWarningWWW-AuthenticateX-Content-Type-OptionsX-DNS-Prefetch-ControlX-Forwarded-ForX-Forwarded-HostX-Forwarded-ProtoX-Frame-OptionsX-XSS-ProtectionMethodsCONNECTDELETEGETHEADMethodsOPTIONSPATCHPOSTPUTStatus100 Continue101 Switching Protocols200 OK201 Created202 Accepted203 Non-Authoritative Information204 No Content205 Reset Content206 Partial Content300 Multiple Choices301 Moved Permanently302 Found303 See Other304 Not Modified307 Temporary Redirect308 Permanent Redirect400 Bad Request401 Unauthorized403 Forbidden404 Not Found405 Method Not Allowed406 Not Acceptable407 Proxy Authentication Required408 Request Timeout409 Conflict410 Gone411 Length Required412 Precondition Failed413 Payload Too Large414 URI Too Long415 Unsupported Media Type416 Range Not Satisfiable417 Expectation Failed426 Upgrade Required428 Precondition Required429 Too Many Requests431 Request Header Fields Too Large451 Unavailable For Legal Reasons500 Internal Server Error501 Not Implemented502 Bad Gateway503 Service Unavailable504 Gateway Timeout505 HTTP Version Not Supported511 Network Authentication RequiredStatus
文字

HTTP Content-Security-Policy响应头允许网站管理员控制允许用户代理为给定页面加载的资源。除少数例外,策略主要涉及指定服务器源和脚本端点。这有助于防止跨站点脚本攻击(XSS)。

有关更多信息,另请参阅本文有关内容安全策略(CSP)的文章。

标题类型

响应标题

禁止标题名称

没有

句法

Content-Security-Policy: <policy-directive>; <policy-directive>

指令

获取指令

提取指令控制可以加载某些资源类型的位置。

child-src定义Web工作人员的有效来源以及使用元素(例如<frame>和)加载的嵌套浏览上下文<iframe>

connect-src限制可以使用脚本接口加载的URL default-src用作其他提取指令的后备。

font-src指定使用加载的字体的有效来源@font-faceframe-src为使用元素(例如<frame>和)加载的嵌套浏览上下文指定有效来源<iframe>

img-src指定图像和网站图标的有效来源。

manifest-src指定应用程序清单文件的有效来源。

media-src指定使用加载媒体来源有效<audio><video><track>元素。

object-src指定有效的来源<object><embed><applet>元素。

script-src指定JavaScript的有效来源。

style-src指定样式表的有效来源。

worker-src指定有效来源WorkerSharedWorkerServiceWorker脚本。

文件指令

Document指令控制策略适用的文档或工作环境的属性。

base-uri限制可以在文档<base>元素中使用的URL 。

plugin-types通过限制可以加载的资源类型来限制可以嵌入到文档中的一组插件。

sandbox为请求的资源启用沙箱,类似于<iframe>sandbox 属性。disown-opener确保资源在导航时不会泄露其开启者。

导航指令

例如,导航指令控制用户可以导航到哪个位置或将表单提交到哪个位置。

form-action限制可以用作来自给定上下文的表单提交的目标的URL。frame-ancestors指定有效的父级可以使用嵌入网页<frame><iframe><object><embed>,或<applet>navigation-to限制文档可以通过任何方式(a, form, window.location, window.open,等)导航到的URL。

报告指令

报告指令控制着违反CSP的报告流程。另见Content-Security-Policy-Report-Only标题。

report-uri指示用户代理报告违反内容安全策略的企图。这些违规报告由通过HTTP 请求发送到指定URI 的JSON文档组成POSTreport-toFires SecurityPolicyViolationEvent

其他指令

block-all-mixed-content当使用HTTPS加载页面时,防止使用HTTP加载任何资产。

referrer用于在引用者(sic)头中指定远离页面的链接的信息。

Referrer-Policy改为使用标题。

require-sri-for需要在页面上使用SRI作为脚本或样式。

upgrade-insecure-requests指示用户代理将所有站点的不安全URL(通过HTTP提供的URL)视为已被替换为安全URL(通过HTTPS提供的URL)。此指令适用于需要重写大量不安全的旧版URL的网站。

CSP in workers

Workers在一般不是由创建它们的文档(或父worker)的内容安全策略管理。要为 workers 指定内容安全策略Content-Security-Policy,请为请求 workers 脚本本身的请求设置响应标头。

例外情况是,如果workers脚本的来源是全局唯一标识符(例如,如果其 URL 具有数据或 blob 的方案)。在这种情况下,workers 会继承创建它的文档或 workers 的内容安全策略。

多种内容安全策略

CSP允许为资源指定多个策略,包括通过Content-Security-Policy标题,Content-Security-Policy-Report-Only标题和<meta>元素。

您可以Content-Security-Policy多次使用标题,如下例所示。请特别注意connect-src这里的指示。即使第二个策略允许连接,第一个策略也包含在内connect-src 'none'。添加其他策略只能进一步限制受保护资源的功能,这意味着将不允许连接,并且作为最严格的策略connect-src 'none'实施。

Content-Security-Policy: default-src 'self' http://example.com;
                         connect-src 'none';Content-Security-Policy: connect-src http://example.com/;
                         script-src http://example.com/

示例

示例:禁用不安全的内联/评估,仅允许通过https:

// headerContent-Security-Policy: default-src https:// meta tag<meta http-equiv="Content-Security-Policy" content="default-src https:">

示例:预先存在的站点使用过多的内联代码进行修复,但希望确保仅通过 https 加载资源并禁用插件:

Content-Security-Policy: default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'

示例:尚未实施上述政策;而只是报告将会发生的违规行为:

Content-Security-Policy-Report-Only: default-src https:; report-uri /csp-violation-report-endpoint/

有关更多示例,请参阅Mozilla网络安全指南。

规范

规范

状态

评论

内容安全策略3级

编辑草稿

添加disown-opener,manifest-src,navigation-to,report-to,strict-dynamic,worker-src。取消不推荐使用frame-src。如果报告为废弃,则弃用report-uri。

混合内容

候选推荐

添加块全混合内容。

子资源完整性

建议

添加require-sri-for。

升级不安全的请求

候选推荐

添加升级不安全请求。

内容安全策略2级

建议

添加base-uri,child-src,表单动作,框架 - 祖先,插件类型,引用链接器,反射-xss和报表 -  uri。弃用frame-src。

内容安全策略1.0

候选推荐

定义connect-src,default-src,font-src,frame-src,img-src,media-src,object-src,report-uri,sandbox,script-src和style-src。

浏览器兼容性

特征

Chrome

Edge

Firefox

Internet Explorer

Opera

Safari

基本支持

251

14

23.02

103

15

74

<meta> element 支持

(Yes)

(Yes)

45.0

No

(Yes)

(Yes)

Worker 支持

(Yes)

?

50.0

No

?

No

特征

Android

Chrome for Android

Edge mobile

Firefox for Android

IE mobile

Opera Android

iOS Safari

基本支持

(Yes)

(Yes)

(Yes)

23.0

?

?

7.15

<meta> element 支持

(Yes)

(Yes)

(Yes)

45.0

No

(Yes)

(Yes)

Worker 支持

(Yes)

(Yes)

?

50.0

No

?

No

  1. 在Chrome 14中作为X-Webkit-CSP标头实现。

2. 在Firefox 4中作为X-Content-Security-Policy header实施。

3. 作为X-Content-Security-Policy header实现,只支持'sandbox'指令。

4. 在Safari 6中实现为X-Webkit-CSP header。

5. 在iOS 5.1中作为X-Webkit-CSP header实现

  1. Content-Security-Policy-Report-Only

2. WebExtensions中的内容安全性

3. 显示安全和隐私政策在Firefox开发者工具中

上一篇:下一篇: