1. ホーム
  2. http

[解決済み] サブドメインとドメイン間でCookieを共有する

2022-03-17 20:24:50

質問

2点ほど質問があります。ドメインを .mydomain.com (先頭のドットを含む)クッキーの中で、すべてのサブドメインがクッキーを共有することができます。

可能 subdomain.mydomain.com で作成されたクッキーにアクセスします。 mydomain.com (を使用しない)。 www サブドメイン)ですか?

可能 mydomain.com (を使用しない)。 www サブドメイン) で作成された場合、そのクッキーにアクセスします。 subdomain.mydomain.com ?

解決方法は?

2つの異なるドメイン(例 mydomain.comsubdomain.mydomain.com または sub1.mydomain.comsub2.mydomain.com で明示的にドメイン名を指定した場合のみ、クッキーを共有することができます。 Set-Cookie ヘッダがあります。そうでなければ、クッキーの範囲はリクエストされたホストに限定されます。(これはquot;host-only cookie"と呼ばれています。参照 ホストのみのクッキーとは何ですか? )

例えば、以下のようなヘッダを subdomain.mydomain.com この場合、クッキーはそのドメインへのリクエストに対してのみ送信され、他のドメインへのリクエストに対しては送信されません。

Set-Cookie: name=value

しかし、以下のようにすれば、両方のドメインで使用できるようになります。

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

domain 属性は " でなければなりません。 ドメインマッチ つまり、同じドメインまたはスーパードメインである必要があります。

上記のクッキーは いずれか のようなネストされたサブドメインを含む、mydomain.com のサブドメインです。 subsub.subdomain.mydomain.com .


RFC 2109 の場合、先頭のドットがないドメインはサブドメインで使用できないことを意味し、先頭のドットのみ( .mydomain.com は、複数のサブドメインにまたがって使用することができます(ただし、トップレベルドメインでは使用できないため、ご質問の内容は古い仕様では不可能でした)。

しかし、すべてのモダンブラウザは、より新しい仕様を尊重しています。 RFC 6265 つまり、トップレベルドメインだけでなく、サブドメインでもクッキーを使用することができるのです。

まとめると、上記2つ目の例のようなクッキーを mydomain.com でアクセスできるようになります。 subdomain.mydomain.com その逆も同様です。これはまた sub1.mydomain.comsub2.mydomain.com を使用してクッキーを共有します。

こちらもご覧ください。