Скажем, у меня есть веб-сайт, который называется a.com
, и когда загружается определенная страница этого сайта, скажем, ссылка на страницу, я хочу установить файл cookie для другого сайта с именем b.com
, а затем перенаправить пользователя на b.com
.
Я имею в виду, при загрузке a.com/link
я хочу установить cookie для b.com
и перенаправить пользователя на b.com
.
Я проверил его, и браузер фактически получил cookie от a.com/link
, но он не отправил этот cookie в запросе на перенаправление b.com
. Это нормально?
Можем ли мы установить куки для других доменов?
javascript
cookies
redirect
Расул Забихи
источник
источник
Ответы:
Вы не можете установить куки для другого домена. Разрешение этого представило бы огромный недостаток безопасности.
Вы должны получить b.com, чтобы установить cookie. Если a.com перенаправить пользователя на
b.com/setcookie.php?c=value
Сценарий setcookie может содержать следующее для установки cookie и перенаправления на нужную страницу на b.com.
источник
Аналогично верхнему ответу, но вместо перенаправления на страницу и обратно, что приведет к плохому пользовательскому опыту, вы можете установить изображение в домене A.
И затем в домене B, который является example.com в cookie.php, у вас будет следующий код:
Hattip к Шубину
источник
Пробалы вы можете использовать
Iframe
для этого. Facebook, вероятно, использует эту технику. Вы можете прочитать больше об этом здесь . Stackoverflow использует похожую технику, но с локальным хранилищем HTML5, подробнее об этом в своем блогеисточник
Настройка файлов cookie для другого домена невозможна.
Если вы хотите передать данные в другой домен, вы можете закодировать это в URL.
источник
Вы не можете, по крайней мере, не напрямую. Это было бы неприятным риском для безопасности.
В то время как вы можете указать атрибут Домена , спецификация гласит: «Пользовательский агент будет отклонять куки, если атрибут Домена не задает область для куки, которая будет включать исходный сервер».
Так как исходный сервер есть
a.com
и не включаетb.com
, его нельзя установить.Вам нужно будет
b.com
установить cookie вместо этого. Вы можете сделать это через (например) HTTP перенаправления тудаb.com
и обратно.источник
evil-hack.com
мог быть установлен файл cookietheir-favourite-website.com
, который изменил бы их предпочтения на этом сайте.Если у вас есть,
a.my-company.com
аb.my-company.com
не толькоa.com
иb.com
вы можете создать cookie для.my-company.com
домена - он будет принят и отправлен на оба домена.источник
см. RFC6265 :
Но вышеупомянутый обходной путь с image / iframe работает, хотя это не рекомендуется из-за его небезопасности.
источник
Вы не можете, но ... Если у вас есть обе страницы, то ...
1) Вы можете отправить данные через параметры запроса ( http://siteB.com/?key=value )
2) Вы можете создать iframe сайта B внутри сайта A и отправлять сообщения из одного места в другое. Поскольку сайт B является владельцем файлов cookie сайта B, он сможет установить любое необходимое вам значение, обработав правильное почтовое сообщение. (Вы должны запретить другим нежелательным отправителям отправлять вам сообщения! Это зависит от вас и механизма, который вы решите использовать, чтобы этого не произошло)
источник
В этой ссылке мы найдем решение Link .
источник
Отправьте запрос POST от A. Почтовые запросы находятся только на стороне сервера и не могут быть доступны клиенту.
Вы можете отправить запрос POST от
a.com
сb.com
помощью CURL (рекомендуется) или стороне сервера скрытойmethod="POST"
форме ( на стороне клиента). Если вы выберете последний вариант, вы можете захотеть запутать свой JavaScript, чтобы пользователь не мог понять алгоритм и вмешиваться в него.Сделайте шлюз
b.com
для установки файлов cookie:Если вы хотите повысить безопасность на шаг вперед, реализуйте функцию с обеих сторон (
a.com
иb.com
) для шифрования (включенияa.com
) и дешифрования (включенияb.com
) данных с использованием криптографического шифра.Если вы пытаетесь сделать что-то, что должно быть абсолютно безопасным (например, перенести сеанс входа в систему), попробуйте oAuth или вдохновитесь https://api.cloudianos.com/docs#v2/auth
источник