---

title: Cookie安全前缀治理(__Host/__Secure)最佳实践

keywords:

  • __Host
  • __Secure
  • HttpOnly
  • Secure
  • SameSite

description: 通过统一使用__Host与__Secure安全前缀Cookie并校验属性,提升会话与敏感标识的安全基线,防止路径与子域滥用。

categories:

  • 文章资讯
  • 技术教程

---

背景与价值

安全前缀可强制Cookie属性与作用域。统一治理能降低路径与子域滥用带来的风险。

统一规范

  • __Host:必须 Secure; Path=/; Domain 不允许;适用于主域全站会话。
  • __Secure:必须 Secure,其他属性按需设置。
  • 统一 HttpOnlySameSite(默认 Lax 或按场景 None)。

核心实现

设置与校验

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

function setHostCookie(res: Res, name: string, value: string, sameSite: 'Lax'|'Strict'|'None' = 'Lax', ttlSec = 1800) {
  const enc = encodeURIComponent(value)
  const attrs = [`__Host-${name}=${enc}`, 'Path=/', 'Secure', 'HttpOnly', `SameSite=${sameSite}`, `Max-Age=${ttlSec}`]
  res.setHeader('Set-Cookie', attrs.join('; '))
}

function setSecureCookie(res: Res, name: string, value: string, sameSite: 'Lax'|'Strict'|'None' = 'Lax', ttlSec = 1800) {
  const enc = encodeURIComponent(value)
  const attrs = [`__Secure-${name}=${enc}`, 'Secure', 'HttpOnly', `SameSite=${sameSite}`, `Max-Age=${ttlSec}`]
  res.setHeader('Set-Cookie', attrs.join('; '))
}

落地建议

  • 会话与敏感标识统一使用 __Host- 前缀并设置 Path=/、不含 Domain
  • 对跨站嵌入场景使用 SameSite=None; Secure 严格属性。

验证清单

  • 前缀与属性是否满足规范;是否避免设置 Domain 与路径缩小。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部