You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何带__Host-前缀的Cookie必须设置Path=/?

关于__Host-前缀Cookie强制Path=/的疑问解答

为什么必须要求Path=/?

  • 消除路径歧义风险:要是允许自定义Path,攻击者可能构造特定路径页面,利用浏览器或服务器的路径解析漏洞,让本该限制在特定路径的Cookie被意外发送到恶意路径下。强制Path=/意味着Cookie会发送到域名下所有路径,反而从规则层面堵死了路径相关的绕过可能——毕竟没有“更窄”的路径能被用来钻空子。
  • 简化安全校验:统一要求Path=/,浏览器验证__Host-前缀Cookie时不用额外解析复杂路径规则,减少了校验环节出漏洞的概率。

规则的制定依据

这个规则出自RFC 6265bis(Cookie规范的修订版本),最初的讨论围绕强化Cookie安全性、防止意外暴露或劫持展开。核心思路就是给高安全级别的Cookie设定严格且无歧义的约束,避免因路径、域名等配置疏漏引入风险。

用Path=/foo/bar的安全劣势

如果你的Cookie设为Path=/foo/bar,同时想用上__Host-前缀的话,浏览器会直接拒绝这个Cookie,因为不符合前缀的强制要求。要是放弃__Host-前缀改用普通Cookie,会面临两个问题:

  • 失去__Host-前缀的专属保护:比如无法避免同源下其他路径的脚本访问该Cookie(虽然Path限制了发送范围,但同源脚本默认能访问所有Path的Cookie,除非加HttpOnly属性)。
  • 路径解析漏洞风险:部分服务器或浏览器对路径匹配的解析比较宽松,比如请求/foo/bar/baz会匹配/foo/bar,但攻击者要是构造/foo/bar%20这类畸形路径,可能绕过Path限制,让Cookie被发送到不该去的地方。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:51:35