PHP Single Sign On (SSO) генерирует новый идентификатор сессии - PullRequest
1 голос
/ 07 мая 2010

Я пытаюсь создать единый вход в процесс.Метод, который я реализовал, использует хранение данных сеанса в базе данных.

Когда новый пользователь заходит на сайт (www.example2.com), проверяется таблица аутентификации.Поскольку это их первое посещение веб-сайта, совпадений не будет.

Браузер перенаправлен на сервер аутентификации www.example1.com/authenticate.php?session_id=ABC123, где ABC123 представляет созданный идентификатор сеанса.на www.example2.com.Идентификатор сеанса, который затем генерируется на www.example1.com, сохраняется вместе с идентификатором сеанса с использованием набора параметров в URL.

Затем пользователь перенаправляется обратно на www.example2.com и сопоставляетсяидентификаторов сеансов нужно найти.

Это БЫЛО нормально работает в FireFox, но когда я попробовал его в Chrome, я заметил, что идентификатор сеанса, генерируемый при перенаправлении браузера обратно на www.example2.com, является новым сеансомЯ бы.В результате создается бесконечный цикл.Это поведение не проявляется в FireFox, а также.

Что является причиной создания нового идентификатора сеанса?Что еще более важно, что я могу сделать, чтобы остановить это?

Спасибо заранее!

EDIT
У меня была логическая ошибка, которая вызывала бесконечный цикл.Теперь это снова работает нормально в FireFox, но бесконечный цикл все еще происходит в Chrome и Internet Explorer.

Ответы [ 2 ]

0 голосов
/ 07 мая 2010

вся идея сеанса в том, что он применяется только к одному домену. в противном случае другие домены могут захватить ваш сеанс. Браузер не должен отправлять файл cookie (содержащий идентификатор сеанса) для домена, для которого он не был написан. т. е. идентификатор вашей сессии для входа в систему www.yourbank.com не должен быть прочитан веб-сайтом www.preatesteallingtheieves.com, и браузер остановит это. (независимо от того, какое имя сеанса вы используете.)

SO: идентификаторы сеансов не разделяются между доменами, даже если вы даете им одно и то же имя.

0 голосов
/ 07 мая 2010

Следуя логике кода, я внес несколько изменений. Кажется, все работает сейчас. Просто немного запутался, почему это не повлияло на FireFox.

Спасибо за интерес каждого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...