PHP хранит данные сеанса для каждого пользователя во временной папке на сервере. Эта папка определена в файле конфигурации php.ini в переменной session.save_path. Найдите это значение в вашем файле php.ini или, альтернативно, создайте файл php с:
<?php echo "Session Save Path: " . ini_get( 'session.save_path');?>
, как его содержимое, и откройте файл в браузере.
Как только вы найдете путь для сохранения данных сеанса, откройте эту папку, и вы заметите довольно простую структуру. Все сеансы хранятся в формате: sess_ $ SESSIONID.
Данные сеанса сериализуются перед сохранением на диске. Таким образом, объекты, хранящиеся в файле сеанса, должны быть десериализованы перед использованием. Однако, если вы используете обычный текст, который хранится как есть, для хранения данных вашего сеанса (например, $_SESSION['userid'] = 1234
) для хранения информации о ваших пользователях, должно быть достаточно просто проанализировать данные, которые вы ищете из-за файлов.
Еще одна вещь ... Я не смотрел на это, но похоже, что идентификатор сеанса, который появляется в имени файла, напрямую соответствует, например, имени файла cookie PHPSESSID, сохраненного на компьютере пользователя. Таким образом, с учетом этого может оказаться возможным циклически просматривать файлы во временном каталоге сеанса, получить все значения $ SESSIONID, установить идентификатор текущего сеанса с помощью session_id($SESSIONID)
, начать сеанс с session_start()
и получить доступ к данным. вам нужно через PHP без необходимости разбирать сами файлы содержимого. Кто-нибудь может подтвердить, возможно ли это?
Редактировать: Скорректированный пост в соответствии с комментарием Итая.