本当にただのメモ

なるべく Qiita に投稿しよう

Cookie の仕様おさらい

Cookie の仕様とセキュリティ

domain属性

Set-Cookie: name=value; domain=example.com
  • domain 属性が指定されている場合、そのクッキーは domain で指定された domain 自体とそのサブドメインに対して 送信される
    • 上の例の場合、このクッキーは example.com, www.example.com, docs.example.com などのホストに対して送信される
    • よって、 サブドメインに送信されてはならないクッキーには domain 属性はつけてはならない
  • 一方で domain を指定しない場合は、Set-Cookie を送信してきたホストにのみ クッキーは送信される
    • domain 属性なしで、example.com によって設定されたクッキーは www.example.com や docs.example.com には送信されない

 - - -

  • また domain属性で指定するドメインは現在のホスト名を含むドメインでなくてはならない
    • 例えばあるページが www.example.com にある場合
domain ok?
example.com
google.com
abc.www.example.com

 - - -

  • domain 属性の値の先頭に “.” を付けても構わない。その “.” は無視される。

path属性

Set-Cookie: name=value; path=/mydir
  • 上記のように path属性を指定するとクッキーは /mydir/ に含まれる URL にのみ 送信される
    • 例: /mydir/, /mydir/index.html, /mydir/subdir/ など
  • path が省略された場合は現在のURL の path が使われる
    • 例えば現在のページが /mydir/subdir/index.html であれば /mydir/subdir/ が path に設定される
  • ほとんどの場合、同一ドメインの全てのリクエストでクッキーが送信されるようにしたいと思うので、多くの場合 path=/ を常に指定することになる