2012-05-03 8 views
2

example.comのCookieを生成するサイトがあります。 Firefox、Chrome 18、Safariの両方でhttp://example.comhttp://www.example.comにアクセスできます。ただし、Webkitから派生したブラウザでは、http://test.me.example.comのCookieにアクセスできません。それはFirefoxで動作します。ChromeとSafariで、一部のサブドメインでCookieが表示されないのはなぜですか?

javascriptからCookieを設定するときに、example.comと.example.comのdomain = 1でこれをテストしました。

クッキーのパスは/であり、有効期限が設定されています。

+1

[subdomain.example.comはexample.comによって読み取れるクッキーを設定できます](http://serverfault.com/questions/153409/can-subdomain-example-com-set) – Andreas

+0

はい、そのスレッドを見ると、Firefoxが正しく、ChromeとSafariが正しく動作していないと思うようになります。私が言ったように、第1レベルのサブドメインは動作しますが、2つのレベルは動作しません。クッキーが.example.comとして定義されている場合、www.example.comとsomething.wwww.example.comの両方が動作することが期待されます。私は誰かがこれがChromeでなぜ起こるのか、または回避策があるのか​​を誰かが知りたいと思っていたと思います。 –

答えて

0

どのようにサブドメインを指定しますか? クロムは、サブドメインのクッキーの先頭にドット のようなクッキーが必要です。ドメイン= .example.comと

あなたは、これはポスト役立つことがあります。https://serverfault.com/questions/153409/can-subdomain-example-com-set-a-cookie-that-can-be-read-by-example-com

はあなたが読んで同じRFC2109から引用:

* A Set-Cookie from request-host x.foo.com for Domain=.foo.com would 
    be accepted. 

のでsubdomain.example.comはのためにクッキーを設定することができます.example.com。ここまでは順調ですね。

The following rules apply to choosing applicable cookie-values from 
    among all the cookies the user agent has. 

    Domain Selection 
     The origin server's fully-qualified host name must domain-match 
     the Domain attribute of the cookie 

ドメイン一致がありますか?

  • AがFQDN文字列であり、Nは ストリング非空の名前であるフォームNBを有し、Bは、フォ​​ーム.B 'を有し、そしてB' がFQDN文字列です。だからx.y.com ドメインは.y.comと一致しますが、y.comは一致しません。 これで、example.comは定義に従って.example.comとドメインを一致させませんでした。しかし、www.example.com(またはドメイン内の他の "空ではない名前")>>。このRFCはRFC2965で廃止されました。これは、Set-Cookie2操作でドメインの先頭のドットを強制することを指示しました。

さらに重要なのは、@トニーが指摘しているように、現実の世界です。実際のユーザエージェントが何をしているかを垣間見るために、使用してwgetので遊んでみてください、実際のサイトがやっていることへの視点については

のFirefox 3のnsCookieService.cpp と

Chromeのcookie_monster.cc を参照してください> --save -cookies、--load-cookies、--debugを実行して、何が起こっているかを確認します。

実際、ほとんどのサイトでは、以前のRFC仕様のSet-> Cookieと「Host」の値の組み合わせを使用していますが、暗黙のうちに先頭のドット(twitter.comのように)値の先頭にドットを付け、www.example.comのようなサーバーにリダイレクトします(google.comのように)。

+0

元の質問に記載されているように、先頭のドットが試されました。 –

関連する問題