牛、豚、鶏、どれか一つ食べられなくなるとしたら?

a=x;b=y;c=z;
のようなフォーマットになっているのでしょうか?
そうすると
自分のサイトが使っているクッキー名と
他のサイトが使っているクッキー名が偶然に一致していたとき
あるブラウザに書かれている自分のサイトのクッキーが
そのブラウザが他のサイトをアクセスしたときに上書きされてしまうのでしょうか?
そのためにクッキー名をつけるときには偶然に一致しないように一定の長さ以上で特異な名前にしたほうがいいのでしょうか?
クッキーについて基本的なことを教えてください

A 回答 (2件)

Cookieは、ドメインごとに設定され、パスで出力先が限定されます。

パス指定されない場合、ドメインのルートパスとなります。

おっしゃる通り、同一ドメイン内で設定されたCookieが、全てHTTP_COOKIEで取得出来ます。(無論ドメインが違うと駄目。)もしも、Cookieにパス指定がある場合は、そのパス以下では該当のCookieが取得可能、それ以上の階層では取得不可能になります。(デフォルトだとルートパスなので、ドメイン内のどの階層でも取得可能です。)

このような仕様の為、同一ドメイン・パス指定以下の階層で利用されるものでは、偶然一致してしまうと、他のクッキーを上書きしてしまう可能性はあります。他と重複しない用に、プログラム名等を含ませる形で名付けてあげると良いでしょう。また、共用サーバなどでは、パス指定で自分のホームを指定しておき、他の方のクッキーと混同されないようにする、等の配慮が必要になります。

この回答への補足

ありがとうございます
プロバイダと契約したときについてきたおまけの場所に
HTMLやCGIを配置してます
クッキーは名前と値だけを指定してます
この場合
このプロバイダの他の人のエリヤのCGIに影響されるのでしょうか?
そうするとディレクトリしてしない場合は他の人とダブらない名前にしなければならないのですね

補足日時:2005/01/10 17:20
    • good
    • 0

Cookieを書き込む時にdomainパラメータとpathパラメータを設定するので、サイト・ページ毎に区別できます。



参考URL:http://www.tohoho-web.com/wwwcook.htm

この回答への補足

ありがとうございます
ということは
$ENV{'HTTP_COOKIE'}
には他のサイトが定義したクッキー名は出現しないと言うことですね?
勘違いかもしれないですが
$ENV{'HTTP_COOKIE'}
をみていると自分が定義していない変なクッキー名が出ていたのでおかしいなーと思ったのです
自分が定義したクッキー名がxで変なクッキー名がzとすると
$ENV{'HTTP_COOKIE'}

x=a;z=b;
となっていてzは定義した覚えが無いのです
もしかしたらプロバイダ供給のCGIを1個使っているので
それが定義したのかもしれませんね?
そうすると他人のCGIを使うと自分のCGIに使ったクッキーとダブルかもしれませんね?

補足日時:2005/01/10 10:57
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報