概念

在浏览网页的过程中,尤其是移动端的网页,经常看到有很多无关的广告,其实大部分广告都是所在的网络劫持了网站响应的内容,并在其中植入了广告代码。为了防止这种情况发生,我们可以使用CSP来快速的阻止这种广告植入。而且可以比较好的防御dom xss。
其核心思想十分简单:网站通过发送一个 CSP 头部,来告诉浏览器什么是被授权执行的与什么是需要被禁止的。这里有一个 PHP 的例子:

  1. <?php
  2. header("Content-Security-Policy: <your directives>");
  3. ?>

一般来说,CSP作为黑客/白名单机制,用于扩展程序加载或执行的资源。

一些指令

你可以定义一些全局规则或者定义一些涉及某一类资源的规则:
default-src ‘self’ ; # self = 同端口,同域名,同协议 => 允许

基础参数是 default-src:如果没有为某一类资源设置指令规则,那么浏览器就会使用这个默认参数值。
script-src ‘self’ www.google-analytics.com ;

在 CSP 1 规范下,你也可以设置如下规则:

  • img-src 有效的图片来源
  • connect-src 应用于 XMLHttpRequest(AJAX),WebSocket 或 EventSource
  • font-src 有效的字体来源
  • object-src 有效的插件来源(例如,
  • media-src 有效的
  • CSP 2 规范包含了如下规则:

    • child-src 有效的 web workers 和 元素来源,如 和