HSTS
这个 HTTP 头部用于强制浏览器只通过 HTTPS 连接,是具有里程碑意义的安全策略配置。以下是对各部分的详细拆解:
核心作用
HSTS(HTTP Strict Transport Security)
通过将网站标记为「仅限 HTTPS」来阻止浏览器使用 HTTP 协议连接,可防御以下攻击:
- SSL Stripping(SSL剥离攻击)
- Cookie 劫持
- 中间人攻击(MITM)
- 协议降级攻击
参数解析
1. max-age=31536000
- 数值含义:有效期 31536000 秒 = 365天
- 生效逻辑:
① 浏览器首次访问时:
⠀└ 接收并记录该策略 → 开启 HSTS 保护
② 后续有效期内的访问:
⠀└ 无论用户输入 HTTP/HTTPS → 强制转为 HTTPS
③ 生效期间:
⠀└ 忽略证书错误警告(若配置不当可能导致无法访问)
2. includeSubDomains
- 作用范围:
覆盖当前主域名及其所有子域名
(例如example.com
包含api.example.com
,cdn.example.com
等) - 安全要求:
必须确保所有子域都支持 HTTPS,否则会导致子域不可访问
核心实现原理
浏览器内部维护的 HSTS 列表工作机制:
配置建议
-
分阶段部署:
- 测试阶段 →
max-age=300
(5分钟) - 稳定后 →
max-age=63072000
(2年)
- 测试阶段 →
-
风险规避:
- 部署前确认所有子域 HTTPS 支持
- 禁用
includeSubDomains
直到子域准备完成 - 使用 HSTS 预加载必须满足全部严格标准
-
紧急救援(误配置时):
# 快速撤销策略(将 max-age 设为0即刻失效) add_header Strict-Transport-Security "max-age=0; includeSubDomains";
安全增强技巧
-
预加载列表(Preload List)
通过 hstspreload.org 提交申请,将域名硬编码到浏览器内核:Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
-
Cookie 安全联动
配合安全 Cookie 属性使用时防御级别更高:Set-Cookie: session=xxxx; Secure; HttpOnly; SameSite=Strict
-
结合 CSP
与内容安全策略形成双层防护:Content-Security-Policy: upgrade-insecure-requests
特别注意:错误配置 HSTS 会导致业务陷入无法恢复的 HTTPS 强制依赖状态,部署前务必通过 curl -I
验证头部生效情况并保持完善的证书管理机制。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY