Заставить php передавать SID в URL-адресе, даже если файлы cookie принимаются в браузере.

Я пытаюсь заставить php автоматически передавать идентификатор сеанса через URL-адрес, даже если браузер принимает файлы cookie.

Я знаю, что идентификатор сеанса URL-адреса обычно считается угрозой безопасности, но я имею в виду очень специфическое приложение, которое требует, чтобы несколько отдельных пользователей могли войти в один и тот же сеанс php, несмотря на то, какие настройки файлов cookie установлены в их браузерах. Совместное использование URL-адреса - моя цель здесь, а не угроза.

Будет несколько «групп» пользователей, каждая группа должна иметь уникальный общий сеанс, поэтому простое применение фиксированного идентификатора сеанса в коде не сработает. Я хочу, чтобы «владелец» группы мог инициировать сеанс, получить уникальный идентификатор, а затем передать его всем другим пользователям через URL-адрес.

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

Я пытался использовать ini_set(), чтобы отключить session.use_cookie, но это просто не позволяет вообще запомнить сеанс.

Любые предложения с благодарностью принимаются.


person Hippyjim    schedule 23.02.2010    source источник


Ответы (2)


Вы пытались включить session.use_trans_sid ?

person Delapouite    schedule 23.02.2010
comment
yup - и отключил session.use_cookie - но SID все равно не передается. Я даже пытался добавить SID к ссылке или двум просто для проверки (не могу сделать это для полного приложения), но, хотя затем он передается в URL-адресе, следующая страница не выбирает его автоматически и не устанавливает идентификатор сеанса. - мое приложение выводит меня из системы, как будто сеанса не существует - person Hippyjim; 23.02.2010
comment
Итак, передайте ваш $_GET ID напрямую в функцию session_id(). - person Delapouite; 23.02.2010
comment
Спасибо, Делапуит - это то, чего мне не хватало. у меня сложилось впечатление, что использование use_trans_id автоматически извлекает идентификатор сеанса из URL-адреса. Наличие кода, проверяющего идентификатор в $_GET, и его применение, если оно есть, помогло. - person Hippyjim; 23.02.2010

Задавать

session.use_cookies=0
session.use_trans_sid=1

через ini_set() или в php.ini, .htaccess ... или где угодно, где вы можете изменить настройки конфигурации.
см. также:

person VolkerK    schedule 23.02.2010