什么是主机唯一的cookie?

时间:2012-09-12 11:39:39

标签: java-ee cookies jsessionid

我想知道什么是host only Cookie。

在检索form auth时,浏览器会在标题中显示一个显示为host only的JSESSIONID Cookie。

3 个答案:

答案 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.comhost-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的域相同。

http://tools.ietf.org/html/rfc6265#section-5.4