Немного о session.use_trans_sid

phpЯ так понимаю, это технология старая как продукты жизнедеятельности мамонтов, но проблема оказывается встречается до сих пор. На некоторых хостингах, (а похоже этим больше грешат хостинги древние, как мамонты) этот флаг включён.

Итак.
Настройка session.use_trans_sid включает transparent session id propagation. Говоря по-русски, ID сессии передаётся через URL.

Это выглядит, как будто ко всем ссылкам на вашей странице кто-то (а именно вебсервер) добавил GET параметр и итоговые ссылки выглядит примерно так:

http://ваш_сайт.com/ваш_документ?session=id_вашей_сессии

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

Это не есть хорошо с точки зрения безопасности. Одно время я даже об этом писал о том как делать безопасные сессии. Возможность задавать ID сессии может привести к фиксации сессии с последующим его уводом.

Решение проблемы
=============================
Проблема решается отключением session.use_trans_sid.

Добавьте в .htaccess

php_value session.use_only_cookies 1
php_value session.use_trans_sid 0

В описанном примере кроме отключения этой опции, включаем session.use_only_cookies. Вдруг она выключена!

Как проверить, включена ли опция session.use_trans_sid?
===============================
Посмотреть какие вообще опции включены можно с помощью функции phpinfo(). Там всё есть.