网站内容策略(CSP-内嵌框架指定可访问的外部CSS资源如何使用)

优采云 发布时间: 2022-04-18 09:30

  网站内容策略(CSP-内嵌框架指定可访问的外部CSS资源如何使用)

  今天SEO Zen要讲的是CSP(Content Security Policy)内容安全策略。这是 HTTP 层的内容。主要目的是设置安全白名单。SEO Zen 已经引入了 XSS 跨站脚本攻击。CSP的主要作用是防止加载不安全的内容,即使有网站可以注入JS脚本的地方,只要不加载和访问外部资源,还是比较安全的。

  如何启用 CSP

  开启CSP有两种方式:服务端配置Http头,在html页面上设置Meta标签。

  以Apache为例,在httpd.conf文件中的virtualHost中添加如下代码:

  Header set Content-Security-Policy "default-src 'self';"

  这个配置的意思是告诉客户端浏览器,默认情况下,除了自己服务器的资源之外,其他资源的加载都会被阻塞。

  如果是Meta模式,代码如下:

  上面的img-src表示图片只能加载支持https协议的资源,childe-src是阻止所有Web Workers和部分iframe外部资源加载。

  CSP 指令选项

  以上只是对一些命令的简单介绍。CSP 提供了许多命令选项。简单介绍一下SEO Zen。如果需要使用,还是需要看官方文档。

  connect-src 连接资源

  指定可访问的连接源,例如 XHR、WebSockets 和来自 EventSource 的外部请求。

  font-src 字体资源

  指定可访问的字体资源,例如 google 字体的字体。

  frame-src iframe

  指定可访问的 iframe 资源,即使用框架或 iframe 嵌入网页中的外部资源。

  script-src JS脚本资源

  指定可访问的外部 JS 脚本资源。

  style-src 样式资源

  指定可访问的外部 CSS 资源。

  media-src 媒体资源

  指定可访问的外部媒体资源,例如 、 、 元素等。

  CSP 有很多命令选项,可以参考 MDN 的 CSP 文档。

  CSP 期权价值

  上面列出了一些常用的 CSP 选项。如何使用它们?以下段落直接抄自阮一峰先生的博客:

  例如:

  Content-Security-Policy: script-src 'self' https://*.seozen.top

  上面白名单的意思是:除了自己的域名和所有在https协议下的域名,其余的外部JS资源都被阻止加载。连这样的域名也加载不出来,因为协议不符合要求。

  如果有多个外部资源,可以并排,中间用空格隔开,最后一个选项用;隔开,如:

  Content-Security-Policy: default-src https://cdn.example.net; child-src 'none'; object-src 'none'

  今天的文章关于CSP的分享在这里。更深入的了解可以参考以下链接:

  内容安全政策——谷歌网络基础知识

  m=2oec10&aip=1&z=86477041">阮一峰CSP教程

  内容安全策略参考指南

  内容安全策略 MDN

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线