2013-04-24 12 views
18

私の仲間Carsten Lauは、クロスドメインクッキーの読み方について興味深いアイデアを持って来ました。クロスドメインクッキー - 多分新しいアイデア

状況:ドメイン "B"に設定されたドメイン "A"からクッキーを読み取ろうとしています。 アイデア:ドメイン "A"上のクライアントから、ドメイン "B"上の動的リソースへのget-requestを実行します - f.e.イメージ "B"は実際にはPHP、Javaなどのようなクッキーを読むことができるプログラミング言語です。そのリクエストでは、セッションIDのような固有の識別子を送信します。だから、ドメイン上のサイトを見て、クライアント上のコードでは、「」次のようになります。

<img src="www.domainB.com/?getCookie.php?sessionID=1234"> 

今、面白い部分です、サーバーBは、サーバー側でのドメイン「B」で設定されたクッキーを読み取り、提供されたsession-idを持つ結果をドメイン "A"によってアクセス可能なDBに書き込むか、クッキー情報を含むレスポンスをドメイン "A"のクライアントに返し、AJAX経由でサーバー "A"に送信します。

私はまだ見つからなかった欠陥があると確信しています。私は個人的には、クライアントブラウザのURLがドメイン "A"を指しているので、サーバー "B"はCookie情報を読み取ることができないと考えていますが、もちろん上記の "getCookie"要求は "B"を指しています。

あなたはそれについてどう考えているのか、それがなぜ機能するのか、なぜうまくいかないのか教えてください。概念の小さな証明は、私の大きな驚きには、成功しました。

+2

これは動作するはずです。実際、これは、ドメインがセッションデータを含むデータベースを共有するため、ウェブサイトが異なるドメインのユーザーのログインを処理する方法です。 – Joseph

+1

ありがとうございます。あなたは両方のドメインを所有していて、ドメイン "B"に小さなスクリプトを追加することができますが、実際には簡単なハックが可能になりますが、インターネット上のどこでも、ここでは、 "クロスドメインのクッキー=不可能"を読むことができます?奇妙な... –

+7

これについて何か変なことはありません。あなたはここで別のドメインのCookieを読んだり設定したりしているわけではありません。あなたのドメインからは不可能です。あなたが他のドメインから "助け"を得ているなら、そのドメインについての "クロスドメイン"はほとんどありません。クロスドメインポリシーは、他のドメインがこれを望まないところで起こるのを防ぐために配置されています。 – CBroe

答えて

15

あなたは2つのドメインを管理しているので、これは正常です。これは、ほとんどのWebサイトがクロスドメインシングルサインオンを達成する方法です。しかし、2番目のドメインを管理していないと、そこからクッキーを読むことはできません。

+3

あなたは正しいです、それにもかかわらず、クロスドメインクッキーを設定しようとしている時代のほとんどの場合、単純な(そして偽の)「不可能な」回答が常にあります。両方のドメインを所有している場合は、まったく問題はありません。 –

関連する問題