如何通过响应头防御XSS?
2025-04-14
6
参考资料
通过响应头防御XSS的防护策略
1. Content-Security-Policy (CSP)
作用:限制浏览器加载和执行资源的来源,防止恶意脚本注入。
关键指令:
default-src 'self'
:仅允许同源资源script-src 'self'
:限制JS脚本来源style-src 'self'
:限制CSS样式来源img-src 'self'
:限制图片来源connect-src 'self'
:限制AJAX请求来源frame-src 'none'
:禁止内嵌<iframe>
report-uri /csp-report
:违规时上报日志示例:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self'; img-src 'self' data:; frame-src 'none'; report-uri /csp-report
2. X-XSS-Protection
作用:启用浏览器内置的XSS过滤器(旧版浏览器支持)。
推荐设置:
X-XSS-Protection: 1; mode=block
1
:启用XSS过滤mode=block
:检测到XSS时阻止页面加载
3. X-Content-Type-Options: nosniff
作用:禁止浏览器自动推断MIME类型,防止恶意文件被当作脚本执行。
示例:
X-Content-Type-Options: nosniff
4. Strict-Transport-Security (HSTS)
作用:强制HTTPS连接,防止中间人攻击(MITM)。
推荐设置:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
max-age=63072000
:有效期2年includeSubDomains
:适用于所有子域名preload
:提交到HSTS预加载列表
5. Referrer-Policy
作用:控制
Referer
头的发送,防止敏感信息泄露。推荐设置:
Referrer-Policy: strict-origin-when-cross-origin
同源时发送完整URL
跨域时仅发送源(
https://example.com
)
6. Feature-Policy
(或Permissions-Policy
)
作用:限制浏览器功能(如摄像头、麦克风、地理位置等)。
推荐设置:
Feature-Policy: camera 'none'; microphone 'none'; geolocation 'none'
或(现代浏览器):
Permissions-Policy: camera=(), microphone=(), geolocation=()
7. Set-Cookie
安全属性
作用:防止Cookie被恶意JS窃取。
关键属性:
Set-Cookie: sessionId=abc123; HttpOnly; Secure; SameSite=Strict
HttpOnly
:禁止JS访问CookieSecure
:仅通过HTTPS传输SameSite=Strict
(或Lax
):限制跨站请求携带Cookie
完整示例响应头配置
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self'; img-src 'self' data:; frame-src 'none'; report-uri /csp-report X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=63072000; includeSubDomains; preload Referrer-Policy: strict-origin-when-cross-origin Permissions-Policy: camera=(), microphone=(), geolocation=() Set-Cookie: sessionId=abc123; HttpOnly; Secure; SameSite=Strict
总结
通过组合使用这些响应头,可以有效降低XSS攻击风险,提高Web应用的安全性。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。