我想知道什么是host only
Cookie。
在检索form auth
时,浏览器会在标题中显示一个显示为host only
的JSESSIONID Cookie。
答案 0 :(得分:39)
首先,foo.com
无法设置bar.com
可以读取的Cookie。 Host-only
仅保护example.com
cookie不被bar.example.com
读取。
关于设置Cookie及其Domain
属性的RFC 6265:
If the domain-attribute is non-empty: If the canonicalized request-host does not domain-match the domain-attribute: Ignore the cookie entirely and abort these steps. Otherwise: Set the cookie's host-only-flag to false. Set the cookie's domain to the domain-attribute. Otherwise: Set the cookie's host-only-flag to true. Set the cookie's domain to the canonicalized request-host.
以上可以用&#34来概括; Host-only是默认的"。也就是说,如果未指定Domain
,则只能通过设置cookie的确切域读取cookie。通过在设置cookie时设置Domain
属性,可以放松这一点。
例如,如果Cookie由www.example.com
设置且未指定Domain
属性,则Cookie将使用域www.example.com
设置,并且Cookie将仅是主机Cookie
另一个示例:如果Cookie由www.example.com
设置且Domain
属性指定为example.com
(因此Cookie也会发送到foo.example.com
), Cookie将使用域example.com
设置(或者可能.example.com
使用前一个RFC 2109中的点来表示不仅仅是主机)和Cookie将不成为仅限主机的Cookie。
第5.4节介绍了有关浏览器发送cookie标头的时间的发送:
The cookie's host-only-flag is true and the canonicalized request-host is identical to the cookie's domain. Or: The cookie's host-only-flag is false and the canonicalized request-host domain-matches the cookie's domain.
因此,将foo.example.com
和host-only
为false的Cookie发送给example.com
。如果host-only
为真,则foo.example.com
仅发送到foo.example.com
。
答案 1 :(得分:9)
仅限主机cookie意味着浏览器应该将cookie处理到服务器 到首先将其发送到浏览器的同一主机/服务器。
您不希望仅为广告系列发送此主机Cookie,因为它可能包含敏感信息。
答案 2 :(得分:1)
cookie的host-only-flag为true,规范化的请求主机与cookie的域相同。