Мои сеансы расположены по адресу:
/var/lib/php5/
Я изменил обработчик сеанса PHP на PHP.serialize
, чтобы изменить формат данных сеанса.
Используя библиотеку phpserialize в python, я могу читать данные из любого сеанса php5. https://github.com/mitsuhiko/phpserialize;
Я хотел бы создать сеанс PHP из python, используя тот же алгоритм, который PHP использует для его session_id.
У меня 2 проблемы.
- разрешения запрещены для записи файла в
/var/lib/php5/
- создание session_id
Я мог бы изменить разрешения файловой системы, но это откроет чертовски много дыр в безопасности на моем сервере, которые я просто не хочу делать. Я хотел бы разрешить конкретному приложению .WSGI доступ только к этим файлам.
Причина, по которой я хотел бы использовать тот же алгоритм, что и PHP для session_id, состоит в том, чтобы уменьшить вероятность столкновения имен сеансов друг с другом.
Если идентификатор сеанса уже существует, я могу получить текущий идентификатор сеанса с помощью файла cookie PHPSESSID. это не проблема.
проверьте строку 307 для php_session_create_id: https://github.com/php/php-src/blob/master/ext/session/session.c#L307