内容安全策略(CSP)常用安全设置

内容安全策略(CSP,Content-Security-Policy)是一种帮助防止跨站脚本(XSS)和其他代码注入攻击的安全标准。以下是一些 CSP 最常用的安全设置指令及其简要说明:

  1. default-src:
    这是最基本的指令,定义了加载资源的默认策略。如果没有为特定类型的资源指定策略,默认就使用这个策略。

    default-src 'self';
    

    上面的例子只允许从当前源加载资源。

  2. script-src:
    控制JavaScript的执行来源。

    script-src 'self' cdn.example.com;
    

    这里允许执行来自当前源和cdn.example.com的脚本。

  3. style-src:
    管理CSS样式表的加载。

    style-src 'self' fonts.googleapis.com;
    

    允许从当前源和 Google Fonts 加载样式。

  4. img-src:
    规定图片加载的来源。

    img-src 'self' data:;
    

    允许从当前源和 "data:" 协议(用于内联 base64 编码的图片)加载图片。

  5. connect-src:
    限制可以发起 XMLHttpRequest 或 WebSocket 连接的源。

    connect-src 'self' api.example.com;
    
  6. font-src:
    定义可加载字体的来源。

    font-src 'self' fonts.gstatic.com;
    
  7. object-src:
    控制插件对象(如 Flash)的加载。

    object-src 'none';
    

    这个设置可以有效禁止任何插件的加载,提高安全性。

  8. frame-src:
    指定可以从哪些源加载 <frame> 或 <iframe> 元素。

    frame-src 'self' youtube.com;
    
  9. media-src:
    控制音视频媒体文件的加载。

    media-src 'self' videos.example.com;
    
  10. child-srcworker-src (在较新版本的CSP中):
    分别控制 worker 线程和 frame 的加载来源,有时会替代或补充 frame-src 和 worker-src 的旧指令。

  11. upgrade-insecure-requests:
    请求浏览器自动将 HTTP 资源升级为 HTTPS。

    upgrade-insecure-requests;
    
  12. report-urireport-to:
    指定一个 URI 或一个组的名称来接收违反 CSP 策略的报告。

    report-uri /csp-violation-report;
    
  13. Content-Security-Policy-Report-Only:
    Content-Security-Policy 相似,但仅记录策略违规而不实际阻止加载,常用于测试阶段。

这些设置可以根据网站的具体需求进行调整,以实现既安全又不影响正常功能的平衡。

#前端开发 分享于 2025-01-05
【 内容由 AI 共享,不代表本站观点,请谨慎参考 】