У меня есть два веб-приложения WebApp1 и WebApp2 в двух разных доменах.
- Я устанавливаю cookie в WebApp1 в HttpResponse.
- Как прочитать тот же cookie из HttpRequest в WebApp2?
Я знаю, это звучит странно, потому что файлы cookie относятся к конкретному домену, и мы не можем получить к ним доступ из разных доменов; Однако я слышал о файлах cookie CROSS-DOMAIN, которые могут использоваться несколькими веб-приложениями. Как реализовать это требование с помощью файлов cookie CROSS-DOMAIN?
Примечание: я пытаюсь это сделать с помощью веб-приложений J2EE
источник
Как говорят другие люди, вы не можете делиться файлами cookie, но вы можете сделать что-то вроде этого:
Конечно, это не совсем безопасно, и для этого вам нужно создать какой-то внутренний протокол между приложениями.
Наконец, пользователю будет очень неприятно, если вы будете делать что-то подобное в каждом запросе, но не в том случае, если это только первый шаг.
Но я думаю, что нет другого пути ...
источник
cookiebaker
было бы лучше ;-)Насколько я знаю, cookie-файлы ограничены политикой «одного и того же происхождения». Однако с помощью CORS вы можете получать и использовать файлы «Сервер B» для установки постоянного сеанса с «Сервер A» на «Сервер B».
Хотя для этого требуются некоторые заголовки на «сервере B»:
И вам нужно будет отправить флаг « withCredentials » на все запросы «Сервер A» (например:
xhr.withCredentials = true;
)Вы можете прочитать об этом здесь:
http://www.html5rocks.com/en/tutorials/cors/
https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
источник
Нет такой вещи как междоменные куки. Вы могли бы поделиться печеньем между
foo.example.com
и ,bar.example.com
но никогда междуexample.com
иexample2.com
и это по соображениям безопасности.источник
foo.example.com
иbar.example.com
?Самое разумное решение - следовать по пути Facebook. Как Facebook узнает, кто вы, когда посещаете какой-либо домен? Это на самом деле очень просто :
Кнопка «Мне нравится» фактически позволяет Facebook отслеживать всех посетителей внешнего сайта, независимо от того, нажимают они на них или нет. Facebook может сделать это, потому что они используют iframe для отображения кнопки. Iframe - это что-то вроде встроенного окна браузера на странице. Разница между использованием iframe и простого изображения для кнопки заключается в том, что iframe содержит полную веб-страницу - из Facebook . На этой странице ничего особенного не происходит, кроме кнопки и информации о том, как много людей понравилась текущая страница.
Поэтому, когда вы видите кнопку «Мне нравится» на cnn.com, вы одновременно посещаете страницу Facebook. Это позволяет Facebook читать файл cookie на вашем компьютере, который был создан при последнем входе в Facebook.
Основное правило безопасности в каждом браузере заключается в том, что только веб-сайт, создавший cookie-файл, может прочитать его позже. И это является преимуществом iframe: он позволяет Facebook читать ваш файл cookie Facebook, даже когда вы посещаете другой веб-сайт. Вот как они узнают вас на cnn.com и показывают там ваших друзей.
Источник:
источник
Делай то, что делает Google. Создайте файл PHP, который устанавливает cookie на всех 3 доменах. Затем в домене, где будет установлена тема, создайте файл HTML, который будет загружать файл PHP, который устанавливает cookie в двух других доменах. Пример:
Затем добавьте обратный вызов onload для тега body. Документ будет загружаться только тогда, когда изображения полностью загружаются, то есть когда файлы cookie установлены на двух других доменах. Onload Callback:
Мы устанавливаем файлы cookie для других доменов, используя PHP-файл, например так:
Теперь куки установлены на трех доменах.
источник
Вы не можете делиться файлами cookie между доменами Однако вы можете разрешить доступ ко всем поддоменам. Чтобы разрешить
example.com
доступ всем поддоменам , установите для этого домена значение.example.com
.Однако невозможно предоставить
otherexample.com
доступ кexample.com
файлам cookie.источник
.google.com
файлы cookie отображаются при просмотре на YouTube?Вы можете попытаться отправить cookie val в другой домен, используя тег изображения.
Ваш пробег может варьироваться при попытке сделать это, потому что некоторые браузеры требуют, чтобы у вас была правильная политика P3P в домене WebApp2, иначе браузер отклонит cookie.
Если вы посмотрите на политику p.gp plus.google.com, то увидите, что их политика:
CP = "Это не политика P3P! Подробнее читайте в http://www.google.com/support/accounts/bin/answer.py?hl=ru&answer=151657 ".
это политика, которую они используют для своих кнопок +1 к этим междоменным запросам.
Еще одно предупреждение: если вы находитесь на https, убедитесь, что тег изображения указывает на адрес https, иначе файлы cookie не будут установлены.
источник
Достаточный обзор того, как Facebook делает это здесь, на nfriedly.com
Существует также «Отпечаток пальца» в браузере, который не совпадает с файлом cookie, но выполняет аналогичную функцию, поскольку помогает идентифицировать пользователя с достаточной степенью уверенности. Здесь есть пост о переполнении стека, который ссылается на один метод снятия отпечатков
источник
Для получения файлов cookie можно использовать невидимые фреймы. Допустим, есть два домена, a.com и b.com. Для index.html домена a.com можно добавить (высота уведомления = 0 ширина = 0):
Таким образом, ваш сайт будет получать файлы cookie b.com, при условии, что http://b.com устанавливает файлы cookie.
Следующим шагом будет управление сайтом внутри iframe через JavaScript. Операции внутри iframe могут стать проблемой, если вы не владеете вторым доменом. Но в случае наличия доступа к обоим доменам, ссылаясь на нужную веб-страницу в src iframe, следует предоставить файлы cookie, которые вы хотели бы получить.
источник
Web.config
Включить происхождение пользовательского интерфейса и установить для параметра Разрешить Crentials значение true
источник
Я создал модуль NPM, который позволяет вам обмениваться локально сохраненными данными между доменами: https://www.npmjs.com/package/cookie-toss
Используя iframe, размещенный в Домене A, вы можете хранить все свои пользовательские данные в Домене A и ссылаться на эти данные, отправляя запросы в iframe Домена A.
Таким образом, Домены B, C и т. Д. Могут внедрять iframe и отправлять запросы на сохранение и доступ к нужным данным. Домен A становится центром всех общих данных.
С помощью белого списка доменов в Домене A вы можете гарантировать, что только ваши зависимые сайты могут получить доступ к данным в Домене A.
Хитрость заключается в том, чтобы иметь внутри кода iframe в домене A код, который может распознать, какие данные запрашиваются. README в вышеупомянутом модуле NPM углубляется в процедуру.
Надеюсь это поможет!
источник
Читать
Cookie
вWeb Api
источник