2011-08-04 5 views
1

Cookieを生成しているウェブサイトのドメインとは異なる他の特定のドメインのCookieを設定する際に問題があります。setcookieを使用しているときにドメイン設定がPHPで動作しない

提供ドメインと次のコードは動作しません:

setcookie('mycookie','mydata1',time() + 2*7*24*60*60,'/','www.domain.com', false); 

私はこれに上記のコードを変更すると、クッキーは私のサーバーのドメインに設定されている:

setcookie('mycookie','mydata1',time() + 2*7*24*60*60,'/'); 

どれを助けを非常に感謝しています!

+4

あなたは傾けることができます。セキュリティの意味を考えてください。 –

答えて

3

クッキーを設定するサイトが閲覧されているサイトと異なる場合、残念ながら、これは機能しません。さもなければ悪意のある人がランダムなクッキーを設定するのを止めるものは何もありません。あなたはいくつかのランダムなページにアクセスして、基本的な例として、ログインしたすべてのサイトからログアウトして、すべてのCookieを上書きすることができます。

setcookieのdomain引数は、ブラウズされているドメインに関連するドメインを指定して、Cookieにアクセスできるようにするためのものです。たとえば、Googleカレンダーにログインすると、カレンダーをhttp://calendar.google.comに表示しているにもかかわらず、Cookieはドメインが.google.comに設定されています。つまり、http://mail.google.comに行った場合でもログインしています。カレンダープログラムがCookieドメインを.calendar.google.comに設定した場合は、http://mail.google.comにアクセスしたときに別途ログインする必要があります。

ドキュメントにはこのような内容が記載されていますが、その内容がわからないとかなり不透明です。 http://php.net/manual/en/function.setcookie.php

+0

ありがとうございます。私はいくつかの投稿要求の結果であるページに直接リンクするために、別のウェブサイトのクッキーを設定したかったのです。私はカールを使用してすべての投稿要求を行い、クッキーをキャプチャして、リンクされたドメインのクライアントサイトでクッキーを設定します。 – BastiaanWW