- PR -

cookieのDomain名が取れない

1
投稿者投稿内容
WT
常連さん
会議室デビュー日: 2004/07/22
投稿数: 29
投稿日時: 2007-03-08 20:00
cookieについてアドバイスを頂きたく投稿します。
(少々会議室違いな気がしているのですが、もし、違う会議室なりがよければ御指摘下さい)

OAS10.1.3 + I.E.7又はFireFox
上でcookieを使った実験用Webアプリを作成しています。

1)最初のページをリクエストされたらCookieを作成し、responseへaddCookieする
2)最初のページがブラウザに表示される
3)最初のページには「次へ」ボタンがあり、クリックすると次のページ(2ページ目)に遷移する
4)2ページ目でrequest内のcookieを全て取り出し、それぞれの値、ドメイン名、パスを取得する
5)取得したcookieの情報を表形式でブラウザに表示する

上記のような事がやりたいのですが、1)〜2)で送信したはずのcookieが5)で表示されません。

色々と調べてみたら
・cookie生成時にドメイン名を指定しないと5)で表示されるが、ドメイン名はnullになる
・cookie生成時にドメイン名を指定すると2)でcookieを受信するところまでは期待通り動くが、5)で何故かcookieが表示されない

事が分かりました。
パスについても上記と同じ動きをしていました。

どうもブラウザが2ページ目へのリクエストにcookieを乗せていないみたいです。

cookieに指定したドメイン名とOAS(OHS)の持つドメイン名が異なっている為、ブラウザが送信しないのか?
と、考え、OASが動作するマシンのホスト名(ドメイン名付き)をcookieのドメインにセットしてみたりしたのですが、状況が変わりません。

cookieの持つドメイン名とOAS(アプリサーバ+ウェブサーバ)の持つドメイン名を合致させれば2ページ目へのリクエストにcookieを含める事ができるのでしょうか?

場違いな感じがする質問なのですが、どなたか御存知でしたらアドバイスをお願いします。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-03-08 20:42
とりあえず「cookie domain」で検索して最初にHitしたページ

http://www.imymode.com/exp/cookie.html

違うドメインにcookieを送るブラウザはあり得ないと思います。domainやpathはブラウザの挙動の話だと思うので、何故サーバ側でcookieのdomain、pathを取得する必要があるのかちょっと不思議な気が・・

[ メッセージ編集済み 編集者: shimix 編集日時 2007-03-08 20:44 ]
Tasuku
大ベテラン
会議室デビュー日: 2006/09/14
投稿数: 106
お住まい・勤務地: tokyo
投稿日時: 2007-03-09 09:02
Cookieのイメージ。

サーバ 「クライアントさん。expiresで指定した日時までの間は、domainドメインにあるpath配下のURLにアクセスするときは、keyとvalue をhttpヘッダに加えてアクセスしてきてね」
クライアント 「へい。分かりやした」

ということで、domainが異なるサーバには、Cookieは送られてきません。
また、サーバ側でdomainとpathの値を抽出することは本質的には意味がありません。
どのdomianのpathにCookieを送信すべきかを判断するのはクライアントの仕事なので、
サーバ側でその値をチェックすることは(普通は)しないからです。
セキュリティを厳しくしたいならチェックするでしょうけど、あまり聞きませんね。
WT
常連さん
会議室デビュー日: 2004/07/22
投稿数: 29
投稿日時: 2007-03-10 21:47
>違うドメインにcookieを送るブラウザはあり得ないと思います。

>ということで、domainが異なるサーバには、Cookieは送られてきません。

はい。そこまでは私も知っているのですが・・・
なので、「cookieに指定したドメイン名とOAS(OHS)の持つドメイン名が異なっている為、ブラウザが送信しないのか?」とか、「OASが動作するマシンのホスト名(ドメイン名付き)をcookieのドメインにセットしてみたりしたのですが」等と考えてみたりしたのです。



>サーバ側でその値をチェックすることは(普通は)しないからです。
>セキュリティを厳しくしたいならチェックするでしょうけど、あまり聞きませんね。

まさにそのセキュリティ対策で実装する事になったようです。
あまりメジャーなやり方ではないのですね・・・


メジャーでないやり方のようなので、他の方法を再検討してもらいます。
アドバイスありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)