Сведения о вопросе

FUTER

09:43, 5th August, 2020

Теги

PHP   Сессии    

PHP. Сессии в БД. Кроссдоменная авторизация. Что-то я в этой жизни не понимаю?

Просмотров: 494   Ответов: 4

Сессии хранятся в БД. Авторизация общая на 2 сайта(2 домена, сайты лежат рядом на одном сервере). Когда юзер авторизуется на одном сайте, происходит редирект на второй, где для session_name() прописывается та же величина, что и на первом сайте (в куках). Таблица с сессионными данными общая для 2х сайтов.

На старом хостинге все работало норм, на новом — пока нет.

Описание проблемы —

Я авторизовался с одного сайта. Захожу на второй, из базы извлекаются данные(фунция read), тут все норм. Но — сразу после session_start(), делаю print_r($_SESSION) и вижу пустой массив. Т.е. строку отдал, получил — … ничего не получил. Так происходит только с данными записанными на одном сайте, которые я пытаюсь прочитать на другом.

Что нашел — данные на старом хостинге писались в виде сериализованного масссива. Здесь же — 'rJFJvf6LVaiQoSWdAHmIFSu5Zfx-393AnbN81sd2B5jmEeWlhKYJB_E9Lv93BjVw'. Может быть в этом дело.


session.serialize_handler = php на обоих хостингах

php — 5.2.4(старый) / 5.2.14(нов)

все настройки php блока session — одинаковые.


Спасибо!



  Сведения об ответе

FAriza

19:22, 21st August, 2020

Вариан 1 — злой и страшный «Suhosin» — шифратор данных сессии.
И будьте добры показать настройки read-write-start сессий


  Сведения об ответе

SKY

17:06, 11th August, 2020

rJFJvf6LVaiQoSWdAHmIFSu5Zfx-393AnbN81sd2B5jmEeWlhKYJB_E9Lv93BjVw — это больше похоже на ключ, чем на данные и длина = 64


  Сведения об ответе

prince

22:25, 19th August, 2020

Похоже, что php собран с модулем повышения безопасности, типа Suhosin, который шифрует данные сессии. И ключ шифрования зависит от домена. Попробуйте отключить все лишние модули.


  Сведения об ответе

park

05:42, 18th August, 2020

а session_decode() правильно раскодирует эту строку?


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться