---

title: HSTS预加载与子域覆盖(includeSubDomains/preload)最佳实践

keywords:

  • HSTS
  • includeSubDomains
  • preload
  • https
  • 子域覆盖

description: 通过统一的HSTS策略与预加载规范、子域覆盖与时长上限控制,强制HTTPS并降低降级与劫持风险。

categories:

  • 文章资讯
  • 技术教程

---

背景与价值

HSTS可强制HTTPS并阻断降级攻击。预加载与子域覆盖能在浏览器层面进一步增强安全。

统一规范

  • 时长上限:max-age 默认≥31536000且不超过两年。
  • 子域覆盖:生产启用 includeSubDomains,避免子域降级链路。
  • 预加载:满足条件后申请预加载并定期复核。

核心实现

策略生成与校验

type Res = { setHeader: (k: string, v: string) => void }

function ttlValid(sec: number): boolean { return Number.isInteger(sec) && sec >= 31536000 && sec <= 63072000 }

function domainEligible(host: string): boolean { return /^[a-z0-9.-]+$/.test(host) && !host.startsWith('localhost') }

function setHsts(res: Res, host: string, ttlSec = 31536000, includeSub = true, preload = false) {
  if (!domainEligible(host) || !ttlValid(ttlSec)) return
  let v = `max-age=${ttlSec}`
  if (includeSub) v += '; includeSubDomains'
  if (preload) v += '; preload'
  res.setHeader('Strict-Transport-Security', v)
}

落地建议

  • 在全站启用HSTS并覆盖子域,确保长效HTTPS;满足条件后申请预加载。
  • 定期验证域名与时长配置,避免过短影响与过长难以撤销。

验证清单

  • max-age 是否在范围内;是否启用 includeSubDomainspreload

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部