首页/安全/加密与证书速查/HTTPS 常用安全响应头组合
TLS 与 HTTPS60 条

HTTPS 常用安全响应头组合

与 HTTPS 搭配的若干响应头:HSTS、X-Content-Type-Options、Referrer-Policy、X-Frame-Options 与 Permissions-Policy,用于降低降级、嗅探与点击劫持等风险。

加密与证书速查安全更新于 2026-10-13

安全响应头组合

安全响应头是 HTTPS 之外的一层纵深防御:HSTS 阻止降级与证书错误时的继续访问,X-Content-Type-Options 禁止浏览器猜测内容类型,Referrer-Policy 控制跨站 Referer 泄露,X-Frame-Options 防点击劫持,Permissions-Policy 按需关闭浏览器能力。它们的共同特点是不改动业务逻辑,却能明显压缩常见 Web 攻击的可利用面。

基本信息

HSTS强制后续使用 HTTPS,注意 max-age 与 includeSubDomains 的影响
X-Content-Type-Options取值 nosniff,禁止浏览器猜测内容类型
Referrer-Policy常用 strict-origin-when-cross-origin
X-Frame-OptionsDENY 或 SAMEORIGIN;新项目可用 CSP frame-ancestors 替代
Permissions-Policy按需关闭摄像头、麦克风、地理位置等浏览器能力
生效前提覆盖全部响应,包括错误页与静态资源

典型使用场景

  • 站点安全加固:补齐基础响应头并纳入发布检查清单
  • 排查点击劫持与内容嗅探问题:确认相关响应头是否真实生效
  • HSTS 灰度上线:先设较短 max-age,验证无误后再逐步延长
  • 兼容性评估:需要被他站嵌入的页面要放宽 frame 限制
  • 例行巡检:用命令行抓取响应头,确认没有漏配或被中间层覆盖

nginx 追加响应头

nginx 追加响应头
add_header X-Content-Type-Options nosniff always;
add_header Referrer-Policy strict-origin-when-cross-origin always;
add_header X-Frame-Options SAMEORIGIN always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
# always 让错误响应也带上这些头,避免错误页成为缺口

头与影响

响应头主要作用开启后的影响
HSTS强制 HTTPS,压缩降级空间includeSubDomains 会波及全部子域,需谨慎
X-Content-Type-Options禁止 MIME 嗅探类型配置错误会更容易暴露
Referrer-Policy控制 Referer 泄露依赖 Referer 的统计需要复核
X-Frame-Options防点击劫持被嵌入的页面会直接失效
Permissions-Policy关闭不需要的浏览器能力依赖定位等功能需单独放行
响应头属于纵深防御的一层,需要与业务功能联动评估:例如要被他站 iframe 嵌入的页面必须放宽 X-Frame-Options。
关键头要检查覆盖范围:登录页、错误页与静态资源往往落在不同 location 中,漏配一处就留下缺口,逐路径抓取响应头比只看配置可靠。
HSTS 的 max-age 一旦被浏览器记住,在有效期内即使证书出问题也无法点击继续访问;首次上线建议先用短周期验证再延长。

易错点

  • 子级 location 自定义 add_header 会整体覆盖父级同名头(nginx 继承规则与直觉不同)
  • 一次性加齐全部头可能影响嵌入、统计脚本等既有功能,建议按变更窗口分批上线
  • HSTS 的 max-age 过长且带 includeSubDomains,会让子域调试非常被动
  • 只在主路径配置响应头,忽略错误页与静态资源路径
  • 配置了但未验证实际响应,中间层(CDN、网关)可能剥离或改写这些头

数据来源与参考

  • MDN HTTP 响应头文档
  • OWASP Secure Headers Project
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌