2011-12-13 6 views
7

https://sub1.domain.comで作成したCookieをhttp://origin.domain.comからColdFusionで読み取る必要があります。 CFCOOKIEを使用してサブドメインにCookieを作成する方法について多くの情報がありましたが、既に存在するCookieにアクセスする方法はわかりません。ColdFusion(HTTPS)でドメイン間(クロスサブドメイン)のCookieを読み取る

HTTPSによってこれは不可能になりますか?

追加: 下記の確認済みの回答は、上記の質問に正しく対応しています。私の場合、それは動作しませんでした。私は説明する必要があります:sub1.domain.comのクッキーはホストされているサードパーティ製の製品で作成されています - 冷凍ではなく、私の管理下にありません。

答えて

6

これは本当に簡単です。 Cookieを作成するときは、ドメインと同じドメイン属性を付けます。覚えておくべき重要な部分は、先頭にドットがある必要があります。

<cfcookie name="mycookie" value="myvalue" domain=".mydomain.com" path="/" /> 

先頭のドットはsub.mydomain.comとblah.mydomain.com含まれるであろうmydomain.comの任意のサブドメインにクッキーを送信するために、ブラウザに指示します。

それからちょうど、他のクッキーあなたが同じようにサブドメインのいずれかからクッキーにアクセスすることができます:

<cfset thevalue = cookie.mycookie /> 

あなたは古いブラウザをサポートするためのベストプラクティスとして、これを行う必要があります。ここで

はRFC2109からの文は次のとおりです。HTTP状態管理メカニズムの可能なセキュリティやプライバシーの侵害を防止するために、古いブラウザ

に」影響を与えることができることを、ユーザーエージェント は、クッキーを拒否(その情報を保管してはならない)場合... の値には、ドメイン属性に埋め込みドットが含まれていないか、 ドットで開始されていません。私はこれはRFC 2965で上書きされると信じて

:。

「ドメインは= valueオプションを述べているHTTP状態管理機構ドメイン属性の値は、クッキーが有効である ドメインを指定します。明示的に指定された の値がドットで始まらない場合、ユーザーエージェントは先頭の ドットを供給します。

これはおそらく、現代のブラウザであなたにとってうまくいく理由を説明しています。私はまだそれを追加することをお勧めします。

+0

実際には、私はこれを試しました - 私がそれをしたとき、先頭のドットは必要ありませんでした。 –

+0

HTTPSはHTTP cookieを準備できますが、それ以外の方法はありません。 – Henry

+1

私が試したテストは両方向で働いていました。おそらくhttpsに制限したい場合は、secure = "true"と指定できます –

関連する問題