サブドメインとドメイン間でCookieを共有する 質問する

サブドメインとドメイン間でCookieを共有する 質問する

質問が 2 つあります。Cookie でドメインを.example.com(先頭にドットを付けて) として指定すると、すべてのサブドメインで Cookie を共有できると理解しています。

(サブドメインなしで)subdomain.example.com作成された Cookie にアクセスできますか?example.comwww

example.comで作成された場合、サブドメインなしでwwwCookie にアクセスできますかsubdomain.example.com?

ベストアンサー1

次のように Cookie を設定すると:

Set-Cookie: name=value

クッキーはリクエストドメインにのみ適用され、他のサブドメインではなく、まったく同じドメインへのリクエストに対してのみ送信されます。(「ホストのみ」Cookie とは何ですか?

2 つの異なるドメイン (例:example.comsubdomain.example.com、またはsub1.example.comと) は、ヘッダーに 属性が存在するsub2.example.com場合にのみ Cookie を共有できます。domain

Set-Cookie: name=value; domain=example.com

ドメイン属性はドメイン一致有効であるためには、リクエスト URL が必要です。つまり、基本的には、リクエスト ドメインまたは「親」ドメインである必要があります。したがって、これは質問の両方の例と、2 つの別々のサブドメイン間の共有に適用されます。

この Cookie は、 およびのサブドメイン( などのネストされたサブドメインを含む)example.comに送信されます。(やなど、Cookie の範囲とブラウザによって送信されるタイミングを制限できる他の属性があることに留意してください)。example.comsubsub.subdomain.example.compathSecure

ドメイン マッチングの仕組み上、 と がsub1.example.comCookiesub2.example.comを共有する場合は、 とも Cookie を共有することになりますsub3.example.com

参照:


属性の先頭のドットに関する注意domain: 初期のRFC 2109、先頭にドット ( domain=.example.com) が付いたドメインのみがサブドメイン間で使用できます。ただし、これはトップレベル ドメインと共有できないため、古い仕様では要求されたことは不可能でした。

しかし、新しい仕様ではRFC 6265先頭のドットは無視されます。つまり、トップレベル ドメインだけでなくサブドメインでも Cookie を使用できます。一部のブラウザでは、ホストのみの Cookie と他の Cookie を区別するために開発者ツールに先頭のドットが表示されますが、これは表示目的のみです。

おすすめ記事