Tim*_*ido 70
前导点表示cookie对子域也有效; 尽管如此,最近的HTTP规范(RFC 6265)改变了这一规则,因此现代浏览器不应该关注领先的点.旧浏览器实现已弃用的RFC 2109可能需要该点.
例如,如果Domain属性的值为"example.com",则在向example.com,www.example.com和www.corp.example发出HTTP请求时,用户代理将在Cookie标头中包含cookie. COM.(请注意,前导%x2E(".")(如果存在)将被忽略,即使该字符不被允许,但尾随的%x2E(".")(如果存在)将导致用户代理忽略该属性. )
JoR*_*uss 52
local.test.com将用于域,同时.local.test.com也将用于子域.
use*_*740 10
从文章Cookie域的权威指南以及为什么www前缀使您的网站更安全:
结论
尽管定义有所不同,但我们可以将其简化为以下任何实现:
其他有价值的观察:
如果cookie中未设置域,则cookie 应仅与请求的确切主机名匹配.[注意:这与返回带有不带点的域的Set-Cookie不同!]没有子域,没有部分匹配.这意味着根本不包括域属性 - 设置空域属性无效.不幸的是,Internet Explorer似乎将此视为主机名以及任何子域.
在cookie中设置域时,安全的选择是让它前面有一个点,如.erik.io.Cookie将与所有子域匹配.
设置没有前一个点的cookie域(如erik.io)在RFC 2109实现中无效,并且将产生与其他实现上的前一个点相同的行为.如果不包含子域,则无法将cookie限制为特定的显式设置域.
在所有RFC中,指定的cookie域必须与正常匹配时的当前主机名匹配.在erik.io的响应中为www.erik.io设置cookie无效,因为域名为www.erik.io的cookie与erik.io不匹配,前者更具体.
在RFC 6265中,在解析Set-Cookie标头时,域显式较低.
“.local.test.com”中的前导点就是 chrome 如何使用“Domain=local.test.com”集(或“Domain=.local.test.com”,这是相同的)查看 cookie。
不带“Domain=something”的 Set-Cookie 定义会查看不带前导点的域 (=host)。
因此,chrome 中的前导点并不反映服务器是否使用前导点,而是反映该 cookie 在其定义中是否有服务器的“Domain=something”。(如果有的话,cookie 也会被发送到子域)。
至少这是我的测试表明的。Chrome 应该使其更易于阅读,例如查看定义 cookie 的确切字符串以及接收时间。
| 归档时间: |
|
| 查看次数: |
38028 次 |
| 最近记录: |