http/cookie/Set-Cookieについて、ここに記述してください。
この仕様がすでにセキュリティの問題を抱えている。 RFC6265は現状を記述したものであり、あるべき姿を規程したものではない。
http://ya.maya.st/d/201109c.html#d20110928
現行の cookie 仕様って、あるドメインに対してユーザに任意のサブドメインを提供してるようなサービス( tumblrとか)で cookie injection を防ぐことができない
1. Set-Cookie ヘッダ
The Domain attribute specifies those hosts to which the cookie will be sent. ---- 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".
おかげで、
- example.com (host) server から com に対する set-cookie が送られても受け入れないようにするために、 Public Suffix Listが設けられた。
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.
このことをもって、Domain attributeを指定しないのが一番安全という説(徳丸氏)があるが、怪しい。
下手に指定しない方がいいということは言えるが。 -- ToshinoriMaeno 2011-10-16 12:37:19
Public Suffix List を無視するブラウザも存在する。
5. User Agent Requirements
- Domain attributeが存在しない場合の扱いもブラウザにより異なる。(それを追認しているように読める。)
この仕様で問題がおきないことを示すのはhttp側の責任であるが、無理であろう。
-- ToshinoriMaeno 2011-10-06 23:29:58
いろいろ問題を抱えた中で、一番安全な方法というような議論にどれほどの意味があると言えるのだろうか。