== http/cookie/属性 == 「CookieのDomain属性は *指定しない* が一番安全」 は間違いとは言えないが、十分安全とも言えない。 -- ToshinoriMaeno <> == Set-Cookie == Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure (NAME=VALUEのみ必須) * Domain クッキーを送信するサーバーのドメイン名。 * Path クッキーを送信するサーバーのパス。 * Expires 有効期限 * Secure HTTPSの通信時のみクッキーを送信する * HTTPonly Netscape仕様 送信先のURLに関連するクッキーを送る Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ... == Domain 属性 == http://suika.fam.cx/~wakaba/wiki/sw/n/domain$16360 http://d.hatena.ne.jp/ockeghem/20111013/p1 CookieのDomain属性は *指定しない* が一番安全 (ockeghem(徳丸浩)の日記) ブラウザがアクセスするURL内のドメイン名がこれに後方一致する場合にクッキーを送信する。 省略された場合はSet-Cookie を送ってきた「サーバ」だけに送るという指定なのだが。 複数のホスト群に送らせたいときに指定する。 あまり安全ではないブラウザ: {{{ Domain属性のないCookieの挙動は以下の結果となりました。 IE9 サブドメインにも送信される }}} === 第三者Cookie === Set-Cookieでアクセス中のホストと異なるドメインに属するクッキーをDomain指定しても ブラウザには無視される。 === RFC 6265 === RFC 6265 HTTP State Management Mechanism April 2011 4.1.2.3. The Domain Attribute {{{ The Domain attribute specifies those hosts to which the cookie will be sent. For example, if the value of the Domain attribute is "example.com", the user agent will include the cookie in the Cookie header when making HTTP requests to example.com, www.example.com, and www.corp.example.com. (Note that a leading %x2E ("."), if present, is ignored even though that character is not permitted, but a trailing %x2E ("."), if present, will cause the user agent to ignore the attribute.) If the server omits the Domain attribute, the user agent will return the cookie only to the origin server. WARNING: Some existing user agents treat an absent Domain attribute as if the Domain attribute were present and contained the current host name. For example, if example.com returns a Set- Cookie header without a Domain attribute, these user agents will erroneously send the cookie to www.example.com as well. The user agent will reject cookies unless the Domain attribute specifies a scope for the cookie that would include the origin server. For example, the user agent will accept a cookie with a Domain attribute of "example.com" or of "foo.example.com" from foo.example.com, but the user agent will not accept a cookie with a Domain attribute of "bar.example.com" or of "baz.foo.example.com". NOTE: For security reasons, many user agents are configured to reject Domain attributes that correspond to "public suffixes". For example, some user agents will reject Domain attributes of "com" or "co.uk". (See Section 5.3 for more information.) }}} (Q) wwwなしでドメイン名だけでアクセスできるサイトはサブドメイン乗っ取り発生時に弱いのではないか。 == Path 属性 == アクセスするURL内のパスがこれに前方一致する場合のみクッキーを送信する。 省略した場合は、アクセスしたURLに含まれるパス。 http://itpro.nikkeibp.co.jp/article/COLUMN/20080221/294407/