見出し画像

アドテク_Cookieとドメインについて #496

前回まとめたこちらの記事の続きです。

Cookieとドメインの基本

Cookieがブラウザにセットされる際、どのドメインでセットされたものか記憶しています。これはDomain属性で制御されますが、これを設定しない(デフォルト)場合と設定する場合で挙動が変わります。

Domain属性を設定しない場合

Domainに何も設定しなければ、同一のオリジン(完全なホスト名)でのみ利用可能なCookieとなります。

例えばホスト名が「sub.example.com」で、以下のようにセットしたとします。

Set-Cookie: user_id=12345; Path=/

この場合、ホスト名が完全一致する「sub.example.com」でのみこのCookieは使用可能で、「example.com」や他のサブドメイン(例えばblog.example.com)では使用できません。

Domain属性を設定する場合

そのドメインに加えてサブドメインでも利用可能なCookieとなります。

Domain属性を設定する場合はeTLD+1を使うケースが多いと思いますが、例えば「example.com」を設定した場合、「example.com」はもちろん、「sample.example.com」といったサブドメインでもCookieを使用できます。

Set-Cookie: user_id=12345; Domain=example.com; Path=/


現在のドメインと異なるドメインを指定した場合

Cookieをセットする際、Domain属性に現在のドメインと全く異なるドメインを指定した場合、そのSet-Cookieはブラウザによって無視されます。JavaScriptでセットする場合も同様です。

例えば「example.com」において、Domainに「otherdomain.com」を指定するとその書き込みは無視されます。

Set-Cookie: session_id=abc123; Domain=otherdomain.com; Path=/

また、これに加えてeTLDやTLDを指定することも無効になります(例えば「example.com」において「com」を指定する等)。これは、ブラウザ側のポリシーで、Cookieは「その関連する範囲内」でのみ有効である必要があるためです。


ここまでお読みいただきありがとうございました!

参考


この記事が気に入ったらサポートをしてみませんか?