请解释内容安全策略 (CSP) 的作用和配置方法

推荐答案

内容安全策略 (CSP) 的作用

内容安全策略(Content Security Policy,CSP)是一种安全机制,用于防止跨站脚本攻击(XSS)和其他代码注入攻击。它通过定义哪些资源可以加载和执行,从而限制网页中可以执行的内容来源。CSP 的主要作用包括:

  • 防止恶意脚本的执行。
  • 限制外部资源的加载,如图片、样式表、脚本等。
  • 提供报告机制,帮助开发者监控和修复潜在的安全问题。

CSP 的配置方法

CSP 可以通过 HTTP 响应头或 <meta> 标签进行配置。以下是常见的配置方法:

1. 通过 HTTP 响应头配置

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

  • default-src 'self':默认只允许加载同源资源。
  • script-src 'self' https://trusted.cdn.com:允许加载同源和指定 CDN 的脚本。
  • style-src 'self' 'unsafe-inline':允许加载同源样式表和内联样式。
  • img-src *:允许加载任何来源的图片。
  • report-uri /csp-report-endpoint:将违规行为报告到指定端点。

2. 通过 <meta> 标签配置

在 HTML 文件中使用 <meta> 标签配置 CSP,例如:

  • 配置内容与 HTTP 响应头类似,但某些指令(如 report-uri)在 <meta> 标签中不可用。

本题详细解读

CSP 的工作原理

CSP 通过定义一系列指令来限制浏览器加载和执行资源的来源。当浏览器加载页面时,会检查每个资源的来源是否符合 CSP 规则。如果不符合,浏览器会阻止加载或执行该资源,并可以生成违规报告。

常见指令解析

  • default-src:默认策略,适用于未明确指定来源的资源。
  • script-src:控制脚本的来源,如 JavaScript 文件。
  • style-src:控制样式表的来源,如 CSS 文件。
  • img-src:控制图片的来源。
  • connect-src:控制 AJAX、WebSocket 等连接的来源。
  • font-src:控制字体文件的来源。
  • object-src:控制插件(如 Flash)的来源。
  • frame-src:控制嵌入框架(如 iframe)的来源。
  • report-uri:指定违规报告的接收端点。

CSP 的兼容性与注意事项

  • CSP 1.0 和 CSP 2.0 已被广泛支持,CSP 3.0 正在逐步推广。
  • 某些旧版浏览器可能不支持部分指令,需谨慎使用。
  • 配置 CSP 时,建议逐步放宽限制,避免影响网站功能。
  • 使用 report-urireport-to 指令可以帮助开发者监控 CSP 的执行情况。
纠错
反馈