Как записать куки в браузер, чтобы их видно было с другого домена?

gavik

Полезный
Регистрация
25 Июл 2010
Сообщения
162
Реакции
15
Вот такая задачка образовалась:
1. Есть сайт test1.ru
2. Есть сайт lending.loc
3. Мы записываем php скриптом, который храниться на сайте 1 cookie.
4. Нужно Javascriptom вытащить эти куки, когда пользователь зашел на сайт 2.
5. Вытащенные cookie нужно отправить Ajax запросом в PHP скрипт на сайте 1.
Вопрос - почему то Cookie видны только когда пользователь заходит на сайт 1.
Когда пользователь на сайте 2 - cookie не видно.

Как записать куки чтобы их было видно на сайте 2 и можно было бы их отправить на сайт 1?

В моем случае cookie я записываю вот таким образом:
PHP:
setcookie("id", $id_user, time()+60*60*24*COOKIE_TIME, $path,$domain,$secure, false);
где $path,$domain,$secure - не обьявлены.
В хэлпе сказано (Для просмотра ссылки Войди или Зарегистрируйся)
path
Путь к директории на сервере, из которой будут доступны cookie. Если задать '/', cookie будут доступны во всем домене domain. Если задать '/foo/', cookie будут доступны только из директории /foo/ и всех ее поддиректорий (например, /foo/bar/) доменаdomain. По умолчанию значением является текущая директория, в которой cookie устанавливается.

domain
Домен, которому доступны cookie. Задание домена 'Для просмотра ссылки Войди или Зарегистрируйся' сделает cookie доступными в поддомене www и поддоменах более высоких порядков. Cookie доступные низким уровням, таким как 'example.com', будут доступны во всех поддоменах высших уровней, с том числе 'Для просмотра ссылки Войди или Зарегистрируйся'. Старые броузеры, следующие устаревшим нормативам Для просмотра ссылки Войди или Зарегистрируйся, могут требовать . перед доменом, чтобы включались все поддомены.
httponly
Если задано TRUE, cookie будут доступны только через HTTP протокол. То есть cookie в этом случае не будут доступны скриптовым языкам, вроде JavaScript. Эта возможность была предложена в качестве меры, эффективно снижающей количество краж личных данных посредством XSS атак (несмотря на то, что поддерживается не всеми броузерами). Стоит однако же отметить, что вокруг этой возможности часто возникают споры о ее эффективности и целесообразности. Аргумент добавлен в PHP 5.2.0. Может принимать значения TRUE или FALSE.
Что я не так сделал? Почему cookie не видны?
2014-12-04_160526.png
 
Давай лучше сразу яваскриптом будем получать куки с sbrf.ru, мне кажется это выгоднее, чем с лэнднгами париться.

Тебе надо на лэндинге дергать скрипт своего сайта 2, который будет ставить куку на сайте2. Итого, оперировать ты будешь двумя (копиями, если ничего по-дороге не сломаешь) куками на разных доменах, а не одной.
 
Куки стоят на одном домене, другой грузится в IFrame, и во фрейме происходят все действия с куки второго домена
 
Куки стоят на одном домене, другой грузится в IFrame, и во фрейме происходят все действия с куки второго домена
Насколько мне помнится, это работает только в случае, если в iframe вы грузите страницу с того же домена (что, в целом, неприменимо в данном случае), иначе - можно грузить туда сайт сбербанка и переводить деньги на свой счет. В других случаях iframeDocument.cookie будет запрещен политикой браузера.

Вариант только один, описанный выше. Грузить в лэндинг пхпшку с первого сайта (фреймом или картинкой, не важно) с параметром, который этой пхпшкой устанавливать в куку для второго домена.

<img src="site1/setcookie.php?userid=landinguser5555" />

в этом случае site1 получит куку, поставленную через setcookie.php
 
<img src="site1/setcookie.php?userid=landinguser5555" />
Я пытаюсь сделать партнерскую программу. Загвоздка в том, что cookie устанавливаются с помощью перехода по партнерской ссылки через скрипт-редирект.
Cookie нужно задавать не добавлением кода картинки на lending.loc а именно при редиректе с сайта test1.ru на lending.loc!
Причем заданные cookie я хочу отправлять именно ajax запросом с lending.loc на test1.ru.
59005

Есть идеи как это можно реализовать?
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    82,4 KB · Просмотры: 96
Последнее редактирование:
Когда-то для себя решил проблему кроссдоменных iframe с помощью прокси (Для просмотра ссылки Войди или Зарегистрируйся, Для просмотра ссылки Войди или Зарегистрируйся, Для просмотра ссылки Войди или Зарегистрируйся - самые нормальные, я их много перебрал), может и вам поможет.
 
Когда-то для себя решил проблему кроссдоменных iframe с помощью прокси (Для просмотра ссылки Войди или Зарегистрируйся, Для просмотра ссылки Войди или Зарегистрируйся, Для просмотра ссылки Войди или Зарегистрируйся - самые нормальные, я их много перебрал), может и вам поможет.
Причем тут прокси? Javascript не видит cookie!
 
Причем тут прокси? Javascript не видит cookie!
Он не увидит куки, если iframe с другого домена, а если использовать iframe через прокси, то все увидит.
Вот пример iframe через прокси:
Код:
<iframe id="preview" frameborder="0" data-src="/proxy/ph/index.php?q=http%3A%2F%2Fwww.6pm.com%2F" src="/proxy/ph/index.php?q=http%3A%2F%2Fwww.6pm.com%2F" name="link_iframe"></iframe>
Вот так забираем куки:
Код:
iframe = document.getElementById("preview");
iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
iframeDocument.cookie - тут наши куки
Только что проверял, все работает.
 
Назад
Сверху