加载中...
内容安全策略是一种通过 HTTP 响应头声明页面可加载哪些资源的浏览器安全机制。它由网站指定可信来源,浏览器据此拦截未授权的脚本和资源,是防御跨站脚本攻击和数据注入的重要纵深防线。

| 类型 | 浏览器安全机制 |
| 交付方式 | HTTP 响应头/meta 标签 |
| 核心指令 | default-src、script-src |
| 主要防御 | 跨站脚本、数据注入 |
| 部署方式 | 仅报告、强制拦截 |
内容安全策略(Content Security Policy,CSP)是一种由网站通过 HTTP 响应头或 meta 标签声明、由浏览器强制执行的安全机制。它明确规定页面允许从哪些来源加载脚本、样式、图片等资源,从而限制恶意内容的注入与执行。
跨站脚本攻击长期是 Web 安全的头号威胁之一,攻击者设法在页面中注入并执行恶意脚本。CSP 提供了一道额外的纵深防线:即便攻击者成功注入了脚本,只要该脚本不来自策略允许的来源,浏览器就会拒绝执行。CSP 遵循默认拒绝的思路,由网站以白名单形式列出可信来源,大幅压缩了攻击者可利用的空间。
CSP 通过一组指令来精细控制各类资源的加载来源。
CSP 广泛用于加固各类 Web 应用,尤其是处理用户输入或嵌入第三方脚本较多的站点。开发者通常先以仅报告模式部署,收集违规日志观察对正常功能的影响,确认无误后再切换为强制拦截。对于金融、电商等对安全要求高的站点,严格的 CSP 能显著降低 XSS 得逞后的危害,并能限制点击劫持等其他攻击。
问:有了 CSP 就不用做输入过滤了吗?答:不是。CSP 是纵深防御的一层,主要作用是在注入发生后减轻危害,输入校验和输出编码等基础防护仍不可或缺。
问:为什么不建议使用 unsafe-inline?答:允许 unsafe-inline 会放行所有内联脚本,等于放弃了 CSP 对 XSS 的核心防护;更安全的做法是用随机数或哈希精确放行必要的内联代码。

| 类型 | 浏览器安全机制 |
| 交付方式 | HTTP 响应头/meta 标签 |
| 核心指令 | default-src、script-src |
| 主要防御 | 跨站脚本、数据注入 |
| 部署方式 | 仅报告、强制拦截 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧