X-XSS-Protection 和 CSP 扫盲
目录
X-XSS-Protection
X-XSS-Protection 是一种内置于浏览器中的安全防护模块,在 IE 浏览器中称为 XSS Filter,在 Chrome 浏览器中称为 XSS Auditor。该模块的作用是在检测到跨站脚本攻击(XSS)时,停止加载页面,从而保护用户的信息和系统安全。
然而,随着安全技术的发展,X-XSS-Protection 已经过时。现在,使用合理的内容安全策略(CSP)可以取代 X-XSS-Protection,提供更加全面和有效的保护。
语法:
X-XSS-Protection: 0— 禁止 XSS 过滤X-XSS-Protection: 1— 启用 XSS 过滤(默认)X-XSS-Protection: 1; mode=block— 启用 XSS 过滤,检测到攻击时阻止页面加载X-XSS-Protection: 1; report=<reporting-uri>— 启用 XSS 过滤并发送违规报告
内容安全策略(CSP)
CSP 是一种内置于浏览器中的安全防护模块,通过限制网页中可以执行的脚本、样式表、图片等内容的来源,防止 XSS、CSRF 等攻击。
CSP 可以做到:
- 禁止内联脚本和样式,只允许外部引用
- 限制脚本来源,只允许指定域名或 IP
- 禁止通过
eval()和Function()动态生成代码 - 禁止使用不安全的协议加载资源
- 禁止使用外部资源的内联代码
使用方式:
HTTP 响应头:
|
|
Meta 标签:
|
|
CSP 的优势:
- 精准度高
- 实时性强
- 兼容性好
X-XSS-Protection 的使用场景
X-XSS-Protection 仍可为不支持 CSP 的旧版浏览器提供保护。如果网站用户群中有部分使用旧版浏览器,可考虑在响应头中添加 X-XSS-Protection。