サブドメイン間のCookie送受信の可否とDomain属性の対応

サーバサイドで作成したCookieをサブドメイン間で送受信するケースにおいて、Cookie作成時のドメインオプションがCookie送受信へ与える影響について紹介します。

ドメインオプションと作成されるCookieのDomain属性の対応表

api.example-dev.comというドメイン名のサーバと、web.example-dev.comというドメイン名のブラウザ(フロントエンド)でCookieの送受信をするケースを考えます。

このとき、サーバサイドでCookieを作成する際に指定するドメインオプションと、ブラウザのCookieにセットされるDomain属性の対応は以下の通りです。

ドメインオプションSet-Cookie有無Domain属性
api.example-dev.com
example-dev.com.example-dev.com
.example-dev.com.example-dev.com
api.example-dev.com.api.example-dev.com
web.example-dev.comN/A
hoge.comN/A

ドメインオプションとCookie送受信に関するまとめ

上記の結果をまとめると以下のようになります。

  • ドメインオプションを指定しない場合、サーバのドメインがDomain属性になる
  • ドメインオプションを指定する場合、作成されるDomain属性の接頭辞にはドットがつく
  • ドメインオプションを指定する場合、ドメインオプションの接頭辞のドットは無視される
  • サーバと一致しないドメインをドメインオプションに指定した場合、Cookieは送られない

さいごに

Twitter(@nishina555)やってます。フォローしてもらえるとうれしいです!

参考記事

タグ: 認証認可