Как установить куки для другого домена



скажем у меня есть сайт под названием a.com, и когда загружается конкретная страница этого сайта, скажем, ссылка на страницу, мне нравится устанавливать cookie для другого сайта под названием b.com, а затем перенаправить пользователя на b.com.



Я имею в виду, на нагрузке a.com/link Я хочу установить cookie для b.com и перенаправить пользователя к b.com.



я протестировал его, и браузер фактически получил cookie от a.com/link, но он не отправил этот файл cookie на запрос перенаправления в b.com. Это нормально?



можем ли мы установить куки для других доменов?

1703   8  

8 ответов:

вы не можете установить куки для другого домена. Разрешение этого будет представлять собой огромный недостаток безопасности.

вам нужно получить b.com чтобы установить куки. Если a.com перенаправить пользователя на b.com/setcookie.php?c=value

сценарий setcookie может содержать следующее, Чтобы установить cookie и перенаправить на правильную страницу b.com

<?php
    setcookie('a', $_GET['c']);
    header("Location: b.com/landingpage.php");
?>

похоже на верхний ответ, но вместо перенаправления на страницу и обратно, что приведет к плохому пользовательскому опыту, вы можете установить изображение на домене A.

<img src="http://www.example.com/cookie.php?val=123" style="display:none;">

а потом на домене B то есть example.com в печенье.php у вас будет следующий код:

<?php
    setcookie('a', $_GET['val']);
?>

Hattip to Шубин

Probaly вы можете использовать Iframe для этого. Facebook, вероятно, использует эту технику. Вы можете прочитать больше об этом здесь. Stackoverflow использует аналогичную технику, но с локальным хранилищем HTML5, подробнее об этом на их блог

вы не можете. Что бы неприятный риск для безопасности.

установка cookies для другого домена невозможна.

Если вы хотите передать данные в другой домен, вы можете закодировать это в url.

a.com  ->  b.com/redirect?info=some+info (and set cookie) -> b.com/other+page

в случае, если у вас есть a.my-company.com и просто a.com и b.com вы можете оформить cookie для .my-company.com домен-он будет принят и отправлен в оба домена.

посмотреть RFC6265:

агент пользователя будет отклонять файлы cookie, если атрибут домена указывает область для файла cookie, которая будет включать источник сервер. Например, агент пользователя примет файл cookie с именем Доменный атрибут "example.com-или ... foo.example.com" от foo.example.com, но агент пользователя не примет файл cookie с именем Доменный атрибут "bar.example.com-или ... baz.foo.example.com".

Примечание: Для по соображениям безопасности многие агенты пользователей настроены на отклонение Атрибуты домена, соответствующие "публичным суффиксам". Например, некоторые агенты пользователей будут отклонять атрибуты домена " com " или "co.uk". (См. раздел 5.3 дополнительные сведения.)

но вышеупомянутый обходной путь с изображением / iframe работает, хотя это не рекомендуется из-за его небезопасности.

вы не можете, но... Если у вас есть обе страницы, то...

1) Вы можете отправить данные через запрос params (http://siteB.com/?key=value)

2) Вы можете создать iframe сайта B внутри сайта A, и вы можете отправлять почтовые сообщения из одного места в другое. Поскольку сайт B является владельцем куки-файлов сайта B, он сможет установить любое значение, которое вам нужно, обработав правильное сообщение. (Вы должны запретить другим нежелательным отправителям отправлять вам сообщения! это вам и механизм, который вы решили использовать, чтобы предотвратить это)

Comments

    Ничего не найдено.