48

我想知道什么是host onlycookie。

检索form auth时,浏览器会在标头中获取 JSESSIONID cookie,显示为host only.

4

3 回答 3

83

首先,无法foo.com设置 cookie 可以读取bar.comHost-only仅保护example.comcookie 不被bar.example.com.

来自RFC 6265关于设置 cookie 及其Domain属性:

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.

这意味着什么

以上可以用“Host-only is default”来概括。也就是说,如果Domain未指定,则该 cookie 只能由设置该 cookie 的确切域读取。这可以通过Domain在设置 cookie 时设置属性来放松。

例如,如果 cookie 由 by 设置www.example.com且未Domain指定属性,则 cookie 将设置为 domainwww.example.com并且 cookie 将是 host only cookie。

另一个例子:如果 cookie 被设置www.example.com并且Domain属性被指定为example.com(所以 cookie 也将被发送到foo.example.com),cookie 将被设置为域example.com(或者可能.example.com由一些浏览器使用之前RFC 2109中的点来表示not host-only ) 并且 cookie不会是仅主机 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.

因此,带有域example.comhost-only错误的 cookie 被发送到foo.example.com. 如果 host-only 为 true,则example.comcookie 仅发送到example.com

于 2015-02-04T11:24:51.257 回答
14

Host Only cookie 意味着 cookie 应由浏览器处理到服务器,发送到首先将其发送到浏览器的同一主机/服务器。

您不想为广告活动发送此主机专用 cookie,因为它可能包含敏感信息。

于 2012-12-18T18:43:51.160 回答
1

cookie 的 host-only-flag 为 true,并且规范化的请求主机与 cookie 的域相同。

https://www.rfc-editor.org/rfc/rfc6265#section-5.4

于 2012-09-12T11:44:55.757 回答