推荐答案
内容安全策略 (CSP) 的作用
内容安全策略(Content Security Policy,CSP)是一种安全机制,用于防止跨站脚本攻击(XSS)和其他代码注入攻击。它通过定义哪些资源可以加载和执行,从而限制网页中可以执行的内容来源。CSP 的主要作用包括:
- 防止恶意脚本的执行。
- 限制外部资源的加载,如图片、样式表、脚本等。
- 提供报告机制,帮助开发者监控和修复潜在的安全问题。
CSP 的配置方法
CSP 可以通过 HTTP 响应头或 <meta>
标签进行配置。以下是常见的配置方法:
1. 通过 HTTP 响应头配置
在服务器端设置 HTTP 响应头 Content-Security-Policy
,例如:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline'; img-src *; report-uri /csp-report-endpoint
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,例如:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline'; img-src *;">
- 配置内容与 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-uri
或report-to
指令可以帮助开发者监控 CSP 的执行情况。