web-dev-qa-db-ja.com

別のドメインからCookieを読み取る

会社内でキャンペーン用のページ/フォームを開発しています。ただし、最初のステップは、その人物がログインしているかどうかを確認することです。これは、ログインすると設定されるCookie(CUSTOMER)に対して簡単に確認されます。

ただし、1)同じドメイン上ではなくローカルで開発しているため、Cookieが表示されません。2)最終的なキャンペーンが実際のドメインに存在する場合とそうでない場合があります。最終的にバニティURLなどを使用する場合があります。

この目的のために、Cookieが設定されたメインドメインにアクセスできないと仮定します。

ドメイン外からそのCookieを読み取るにはどうすればよいですか?ああ、IT関係者はバックエンドgrumbleに触れさせないので、JSソリューションでなければなりません。

ありがとう!

19

できません。

クライアント側のJavaScriptで読み取ることができるCookieは、HTMLドキュメントの<script>が埋め込まれています。

withCredentials を設定すると、クロスオリジンリクエストでCookieをサポートできますが、ブラウザによって透過的に処理され、JSはそれらに直接アクセスできません(XHR仕様は getAllResponseHeadersがCookie関連ヘッダーの読み取りを明示的に禁止する )。クロスオリジンリクエストがCookieにアクセスする唯一の方法は、サーバー(アクセス権がないと言います)がデータを本文または別の応答ヘッダーにコピーすることです。

20
Quentin

サーバー側のコンポーネントをインストールできる場合は可能です。

専用ドメインを使用してCookieをホストし、XSSテクニクスを使用して共有できます

Dom1.foo.comにログインすると、Ajax XSS呼び出しを使用してcookie.foo.comにcookieを登録し、dom2.foo.comにアクセスすると、cookie.foo.comにXSS APIを照会する必要があります。

私はしばらく前にそれで遊んだことがあります https://github.com/quazardous/mudoco/blob/master/mudoco/README.txt それはある種のPOCです。

2
quazardous

「cookieを使用した」ドメインを指すsrcを使用して、ページにiframeを埋め込むことでそれができると思います。 http://cookiedomain.com/some.html と言います。 Some.htmlページは、Cookieにアクセスしてグローバル変数を設定するJavaScriptを実行します

0
Kamarey