--- title: 内容安全策略介绍 slug: Web/Security/CSP/Introducing_Content_Security_Policy tags: - 介绍 - 内容安全策略 - 安全 translation_of: Web/HTTP/CSP translation_of_original: Web/Security/CSP/Introducing_Content_Security_Policy ---

{{ gecko_minversion_header("2") }}

内容安全策略 (CSP)  是一个附加的安全层,用于帮助检测和缓解某些类型的攻击,包括跨站脚本 (XSS) 和数据注入等攻击。 这些攻击可用于实现从数据窃取到网站破坏或作为恶意软件分发版本等用途。

CSP被设计成向后兼容;不支持的浏览器依然可以运行使用了它的服务器页面,反之亦然。不支持CSP的浏览器会忽略它,像平常一样运行,默认对网页内容使用标准的同源策略。如果网站不提供CSP头部,浏览器同样会使用标准的同源策略

开启CSP就如配置您的页面服务来返回Content-Security-Policy HTTP 头部一样简单. (Firefox 23之前的版本使用的是X-Content-Security-Policy ). 查看 Using Content Security Policy 获取如何配置和开启CSP的细节

提示: 内容安全策略标准特点 是一种能被 {{ HTMLElement("meta") }}元素来配置的一种协议,但这种做法仍未被Firefox支持, 支持这种做法是被添加在bug 663570.

减少跨域脚本

CSP的主要目标是减少和报告XSS攻击. XSS攻击利用浏览器对从服务器接受的内容的信任。恶意的脚本在受害的浏览器被执行, 因为浏览器相信内容源,甚至当内容源并不是从它应该来的地方过来的。

CSP使服务器管理员能够通过制定浏览器能够执行的可信赖脚本的域名来减少或者消除由XSS可能出现的矢量。 一个兼容CSP的浏览器将只会执行加载与白名单域名的源文件的脚本,忽略那些其他的脚本(包括内联脚本和事件操控HTML属性)

作为一种最终的保护,想要禁止脚本的站点可以选择全局禁止脚本执行

减少数据包监听攻击

为了重新约束内容被下载的域名, 服务端能够制定那种协议能够被使用;例如(理论上,从安全的立足点来看),一个服务制定所有的内容都通过HTTPS协议来加载

提示:一个完整地数据传输安全策略不单单包括通HTTPS加强数据的传输,还可以使所有cookie带上安全标志并且提供从HTTP页面到对应HTTPS页面的自动重定向。
提示:站点可能也会使用 Strict-Transport-Security HTTP头部来确保浏览器只通过一个加密渠道来连接他们

See also

Specification

{{ languages( { "ja": "ja/Introducing_Content_Security_Policy" } ) }}