# HTTP 安全响应头速查表(Web渗透、代码审计、等保、OWASP) > 用途:检查Web服务器/中间件返回头,防御XSS、点击劫持、MIME嗅探、信息泄露等风险;可直接写入渗透报告 |响应头|作用|推荐值|风险(缺失该头会导致)| |---|---|---|---| |**X-Frame-Options**|防止页面被iframe嵌入,抵御**点击劫持**|`DENY` 或者 `SAMEORIGIN`
允许指定域名:`ALLOW-FROM https://xxx.com`|页面可被第三方网站嵌入iframe实施点击劫持攻击| |**X-Content-Type-Options**|禁用浏览器MIME类型自动嗅探|`nosniff`|浏览器误判文件类型,触发MIME嗅探攻击,执行恶意脚本| |**Content-Security-Policy (CSP)**|白名单控制资源加载来源,大幅降低XSS|`default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:`|缺少CSP,XSS漏洞更容易被利用,加载第三方恶意脚本| |**X-XSS-Protection**|浏览器内置XSS过滤器(现代浏览器逐步废弃,配合CSP)|`1; mode=block`|旧版浏览器无法拦截反射型XSS| |**Strict-Transport-Security (HSTS)**|强制浏览器使用HTTPS,防止HTTP降级劫持|`max-age=31536000; includeSubDomains; preload`|用户首次访问HTTP会被劫持,SSL降级攻击| |**Referrer-Policy**|控制Referer信息泄露,防止URL参数泄露|`strict-origin-when-cross-origin` / `no-referrer`|跨站请求泄露页面路径、token、GET参数敏感信息| |**Permissions-Policy**|控制浏览器API权限(摄像头、麦克风、定位等,旧名Feature-Policy)|`camera=(), microphone=(), geolocation=()`|页面可随意调用浏览器硬件API,隐私风险| |**Cache-Control**|控制页面缓存,敏感页面禁止缓存|敏感页面:`no-cache, no-store, must-revalidate`|敏感页面被浏览器/代理缓存,泄露会话、隐私数据| |**Pragma**|兼容旧浏览器,禁用缓存(配合Cache-Control)|`no-cache`|旧浏览器缓存敏感内容| |**X-Powered-By**|**信息泄露头,建议直接删除** |(删除,不返回)|泄露后端技术栈:PHP/Express/ASP.NET,给攻击者提供版本线索| |**Server**|**信息泄露头,建议精简/隐藏** |(删除或伪装)|泄露中间件名称版本(Nginx/Apache/IIS),便于攻击者定向找CVE| ## 补充:Cookie安全相关响应头(Set-Cookie内属性,非常重要,OWASP重点) > Set-Cookie: JSESSIONID=xxxx; **属性** |Cookie属性|作用|推荐配置|缺失风险| |---|---|---|---| |HttpOnly|禁止JS读取Cookie,防御XSS偷Cookie|开启|XSS成功后可直接document.cookie盗取会话| |Secure|仅HTTPS下传输Cookie|HTTPS站点必须开启|HTTP明文传输Cookie,抓包窃取| |SameSite|防御CSRF,限制跨站携带Cookie|`SameSite=Strict` / `Lax`|容易遭受CSRF跨站请求伪造| |Max-Age / Expires|设置Cookie过期时间,会话Cookie不设置|会话Cookie不设置,持久Cookie缩短周期|Cookie长期有效,被盗后有效期长| ## ✅ 推荐完整安全头示例(Nginx/Apache配置参考) ```http X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Strict-Transport-Security: max-age=31536000; includeSubDomains Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data: Referrer-Policy: strict-origin-when-cross-origin Permissions-Policy: camera=(), microphone=(), geolocation=() Cache-Control: no-cache, no-store, must-revalidate ``` ## 📌 排查命令(curl快速检测) ```bash # 获取全部响应头 curl -I https://target.test # 只看安全相关头 curl -I https://target.test | grep -E "X-Frame|X-Content|Strict|Content-Security|Referrer|Permissions" ``` ## ⚠️ 常见踩坑 1. CSP配置过宽,如 `script-src 'unsafe-inline' 'unsafe-eval'`,基本失去防护意义 2. HSTS仅配置max-age,忘记`includeSubDomains`,子域名无保护 3. 只加安全头,Cookie不配置HttpOnly/Secure,防护不完整 4. 多个安全头冲突;CSP规则写错导致页面静态资源加载失败 ## 📝 渗透报告结论模板 > 目标站点缺少X-Frame-Options、CSP、HSTS等安全响应头,存在点击劫持、XSS利用、HTTPS降级劫持风险;建议在Web服务增加对应HTTP安全响应头加固。