cookieの罠

IEで本番環境(example.jp)でログインしたのちに、サンドボックス環境(sandbox.example.jp)にログインしようとすると、ログインはできるがページを移動しようとするとまたログイン画面が表示される不具合の解決を依頼される。


また、IEかよ・・・と思いつつ、おそらくcookieが原因だと思われたのでそのあたりを重点的に調べた。

本番環境で発行されるSet-Cookieヘッダ

Set-Cookie: session=926c870b5f12b60d6cdf550ca7e01b00b8793768; path=/; expires=Tue, 25-Oct-2011 17:39:56 GMT; HttpOnly

サンドボックス環境で発行されるSet-Cookieヘッダ

Set-Cookie: session=6f071365d542a347024eb9a9d9340ff02447469a; path=/; expires=Tue, 25-Oct-2011 17:39:57 GMT; HttpOnly

リクエストヘッダのcookie部 to sandbox on Firefox

Cookie: session=6f071365d542a347024eb9a9d9340ff02447469a

リクエストヘッダのcookie部 to sandbox on IE

Cookie: session=926c870b5f12b60d6cdf550ca7e01b00b8793768; session=6f071365d542a347024eb9a9d9340ff02447469a

!?

IEでは、本番環境で発行されたcookieまでリクエストに含んでる。
IEFirefoxどっちの挙動が正しいのか分からなかったのでCookieについてもっと調べた結果、どうやらIEcookieのdomain属性の解釈に不具合あり、"example.jp" と ".example.jp" に違いがなく、すべて".example.jp"として解釈される模様。

IE非対応です

とはさすがに言えるはずもないので、sandbox環境でのnameを変更することで対応。
無事、問題解決。


結論:IE死ねばいいのに。