CSP(Content Security Policy) 101

这期科普网络安全里的一个小知识:Content Security Policy(内容安全策略)。

前言

我们都应该听说过XSS(跨站脚本攻击);它可能是最常见、危害最大的网络安全漏斗。大约十年前吧,W3C 网络应用安全工作组为防御 XSS、点击劫持等代码注入攻击,推荐 CSP 成为计算机安全标准,以阻止恶意内容在受信网页环境中执行;之后几乎所有的现代浏览器都支持了这一策略。

XSS 可以通过本站点

Hash 值在前端开发中也可配在 webpack 里,有csp-html-webpack-plugin这种插件会自动在 meta 和 script 里生成 hash 值,以控制不同版本的脚本文件。

使用方法

上面列举了一些常用的配置场景,忘了提 CSP 到底怎么使用了。有两种方法可以启用 CSP 策略:

  1. 在服务器返回的 HTTP header 里加上Content-Security-Policy字段,以 express 为例:

    app.use((req, res, next) => {
      const csp = "default-src 'self';";
      res.append("Content-Security-Policy", csp);
      next();
    });
    
  2. html 里加上 标签,这个现在基本可以用 webpack 来完成了:

    // index.html
    
    

小结

CSP 是过滤 XSS 攻击最常用的手段,我们相关从业人员都应该懂得这些基本用法。但是 CSP 也只是最基本的防御手段,只要控制了一台列入了白名单的可信主机,基本 CSP 就凉凉了。所以,网络安全需要更多的防护手段综合治理,任重道远呀。

你可能感兴趣的:(CSP(Content Security Policy) 101)