Intereting Posts
PHP File_put_contents не работает Использовать директиву Laravel @include с файлами без PHP? Применяет ли ORDER BY до или после DISTINCT? Установить зависимость (доктрина / dbal) на композитор laravel Пользовательская кнопка добавления в корзину, чтобы добавить несколько товаров в корзину с количеством: woocommerce Функция PHP ord () возвращает неверный код cirilyc charecter Php, подтверждающий формат 24-часового времени Каков наиболее эффективный способ получить часть удаленного XML-файла через PHP? Доступ запрещен для пользователя '@' localhost '(с использованием пароля: НЕТ) Являются ли Ioncube закодированными файлами без ограничений? Отменить внутри array_walk_recursive не работает Что быстрее; включая другой файл или запрос базы данных MySQL в PHP? удалить дубликаты из строки, разделенной запятыми Вставка греческого символа в php по сравнению с студией управления SQL-сервером Как использовать PHP_CodeSniffer с XAMPP?

Как использовать файлы cookie в двух разных доменах?

Мне нужно разделить информацию SSO между двумя разными доменами с файлом cookie, это можно сделать в PHP и как?

Related of "Как использовать файлы cookie в двух разных доменах?"

В обоих доменах поместите изображение или другой веб-элемент, который вытащил из другого домена. Используйте URL-адрес, чтобы уведомить другой домен, что пользователь X находится в домене A, и пусть домен B связывает этот идентификатор пользователя с этим пользователем в своей системе.

Это немного сложнее, чтобы выполнить правильно, но если вы думаете, что это сработает, все будет хорошо.

Винько указывает в комментарии (спасибо!), Что я не должен считать само собой разумеющимся, что вы понимаете риски безопасности. Если эта информация имеет какое-либо значение для кого-либо, вы должны убедиться, что используете правильное шифрование, аутентификацию и т. Д., Чтобы не освобождать конфиденциальную информацию и избегать различных атак (повтор, человек посередине и т. Д.). Это не должно быть слишком обременительным, так как вы контролируете оба веб-сайта, и вы можете выбрать секретный секретный ключ для обоих, поскольку связь происходит только между двумя серверами через этот специальный URL-адрес. Имейте это в виду.

-Адам

Если у вас есть два сайта, использующих один и тот же домен, и вы хотите делиться куки-файлами между ними, укажите в файле settings.php что-то вроде этого для каждого домена:

 ini_set('session.cookie_domain', '.EXAMPLE.com'); 

Убедитесь, что вы включили ведущий '.' перед доменным именем, или он не будет работать.

Это позволяет пользователям поддерживать статус входа в систему между любыми сайтами, настроенными для файлов cookie домена.

Это также может иметь негативные побочные эффекты, поэтому не делайте этого, если вы не знакомы со всеми куки-файлами, которые используются для сайтов, с которыми вы хотите совместно использовать куки.

У вас нет, файлы cookie привязаны к домену. Существуют ограничения на это, и они называются межсайтовыми скриптами.

Теперь, для некоторой помощи в вашей проблеме. Что вы можете сделать, так это создать скрипт, который поможет их преодолеть.

Вы можете глобально переписать все ссылки на ваш второй сайт, чтобы получить информацию о файлах cookie с первого сайта.

Вы сохранили бы все файлы cookie с сайта-a в базе данных, которую оба они могли бы прочитать, а затем программно добавляя querystring файла cookie на всех ссылках на сайт-b, затем вы просматриваете этот идентификатор файла cookie и повторно устанавливаете файлы cookie в новый домен.

Существует действительно хорошая библиотека абстракции базы данных PHP ( PHP ADODB ), и в ней есть плагин для совместного использования сеансов, что делает все это намного проще.

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

 # in httpd.conf (or equivalent) php_value session.cookie_domain mydomain.com 

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

Существует также метод установки направления переменных в PHP, описанного по адресу http://us.php.net/manual/en/function.session-set-cookie-params.php . В документации не упоминается способность или невозможность установить файлы cookie в другом домене.

В этой же теме есть другой поток переполнения стека , но я не думаю, что на это когда-либо достаточно ответили.

Ну, если ваши домены – это просто разные поддомены, вы можете сделать это простым путем, создав .yourdomain.com cookie .yourdomain.com . Затем cookie передается вместе со всеми запросами во всех субдоменах.

Это не так просто, если вы хотите делиться куки-файлами между разными доменами, поскольку браузеры рассматривают его как угрозу безопасности.

Какой именно пример?

В случае какого-либо программного обеспечения, такого как Google Analytics и других изображений отслеживания, и т. Д., Вы можете использовать заголовки P3P, чтобы браузер знал, что вы не заботитесь о безопасности при отправке своих файлов cookie. Затем браузер, запрашивающий изображение, получает куки-файл как часть ответа, а также проверяет P3P. Если все в порядке, он сохраняет файл cookie на жестком диске, и в следующий раз, когда вы попросите изображение, которое находится на вашем веб-сайте (но является частью страницы других доменов), браузер отправит файл cookie. Но я думаю, это не помогает 😉

Я никогда не использовал значение cookie для доменов в прямом смысле этого слова.