网页安全策略---CSP


  • Content Security Policy (网页安全策略或内容安全策略,简称 CSP),主要用于检测并削弱某些特定类型的攻击,如跨站脚本(xss)、数据注入攻击等,相当于是让浏览器自动禁止外部注入恶意脚本

  • CSP的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,它的实现和执行全部由浏览器完成,开发者只需要提供配置

  • 两种启用CSP方式

    • ①通过HTTP头部信息的Content-Security-Policy字段添加指定策略
      Content-Security-Policy: script-src 'self'; boject-src 'none'; style-src cdn.example.org third-party.org; child-src https:
    • ②通过网页的标签
      <meta http-equiv='Content-Security-Policy' content="script-src 'self'; boject-src 'none'; style-src cdn.example.org third-party.org; child-src https:">
    • 以上代码的配置信息:
    • 脚本:只信任当前域名
    • 标签,不信任任何URL,即不加载任何资源
    • 样式表:只信任cdn.example.org third-party.org
    • 框架(frame):必须使用HTTPS协议加载
    • 其他资源:没有限制
    • 资源限制选项
      • script-src: 外部脚本
      • style-src: 样式表
      • img-src: 图片
      • media-src: 媒体文件
      • font-src: 字体文件
      • object-src: 插件,如Flash
      • child-src: 框架
      • frame-ancestors: 嵌入的外部资源,如:frame、iframe
      • content-src: HTTP连接(通过XHR、WebSockets)
      • worker-src: worker脚本
      • manifest-src: manifest文件
    • default-src 选项
      • 用来限制各个选项的默认值
        Content-Security-Policy: default-src 'self'
    • 以上代码限制所有资源只能从当前域名加载
  • 参考


  目录