请解释如何配置内容安全策略 (CSP)?

推荐答案

配置内容安全策略 (CSP) 的步骤

  1. 设置 HTTP 响应头:在服务器端设置 Content-Security-Policy HTTP 响应头。例如:

  2. 定义策略指令:根据需求定义不同的策略指令,如 default-srcscript-srcimg-srcstyle-src 等。

  3. 测试和调整:在开发环境中测试 CSP 配置,确保所有资源加载正常,并根据需要调整策略。

  4. 部署到生产环境:将配置好的 CSP 部署到生产环境,并持续监控和优化。

本题详细解读

什么是内容安全策略 (CSP)?

内容安全策略 (CSP) 是一种安全机制,用于防止跨站脚本攻击 (XSS) 和其他代码注入攻击。通过定义哪些资源可以加载和执行,CSP 可以有效减少攻击面。

CSP 的主要指令

  • default-src:定义默认的资源加载策略。
  • script-src:定义 JavaScript 文件的加载策略。
  • style-src:定义样式表的加载策略。
  • img-src:定义图片资源的加载策略。
  • connect-src:定义 AJAX、WebSocket 等连接的加载策略。
  • font-src:定义字体资源的加载策略。
  • object-src:定义插件(如 Flash)的加载策略。
  • frame-src:定义 iframe 的加载策略。
  • base-uri:定义文档的基础 URI。
  • form-action:定义表单提交的目标 URL。

示例配置

  • default-src 'self';:默认只允许加载同源资源。
  • script-src 'self' https://apis.google.com;:允许加载同源和 https://apis.google.com 的 JavaScript 文件。
  • img-src 'self' https://example.com;:允许加载同源和 https://example.com 的图片资源。
  • style-src 'self' 'unsafe-inline';:允许加载同源样式表和内联样式。

注意事项

  • 'unsafe-inline':允许内联脚本和样式,但会增加安全风险,应谨慎使用。
  • 'unsafe-eval':允许使用 eval() 等动态代码执行函数,同样会增加安全风险。
  • 报告模式:可以使用 Content-Security-Policy-Report-Only 头来测试 CSP 配置,而不实际阻止资源加载。

通过合理配置 CSP,可以显著提升 Web 应用的安全性。

纠错
反馈