ProfiPHPProfiPHP
Категория: Директивы PHP

Директива Session.use_trans_sid

Директива Session.use_trans_sid указывает, используется ли прозрачная поддержка SID или нет. По умолчанию 0 (отключено).
session.use_trans_sid boolean
Включенная директива Session.use_trans_sid создает константу SID (string), которая содержит либо имя сессии и идентификатор в виде "session_name = session_id" либо пустую строку, если идентификатор сессии был установлен в соответствующие Cookies. Следовательно для работы константы SID необходимо отключать директивы Session.use_cookies и Session.use_only_cookies.

Передать идентификатор сессии можно с помощью Cookies или параметра URL. Метод с Cookies является оптимальным, но он не всегда доступен. Поэтому PHP предоставляет второй способ, который внедряет идентификатор сессии непосредственно в URL.

При включенной директиве Session.use_trans_sid, в относительные URI будут автоматически добавляться идентификаторы сессии. Если директива отключена, необходимо самостоятельно добавлять идентификатор любым доступным способом, например в URL адрес или скрытыми полями формы.

Приведенный ниже пример демонстрирует использование константы SID.
echo '<a href="/script.php?'.htmlspecialchars( SID ).'">Нажмите</a>';
Результат работы примера:
script.php?PHPSESSID=743eplgpgd5k35jclubnjg8on5
Функция Htmlspecialchars может использоваться для вывода SID с целью предотвращения XSS-атак.

Замечание: Неотносительные URL указывают только на внешние сайты и потому SID к ним не добавляется, так как это увеличивало бы риски в области безопасности, в частности, риск утечки SID другому серверу.

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

Добавить комментарий

Имя:
Текст комментария: