@pokirfase

Почему генерация новой сессии возвращает пустую строку?

Добрый день! Не могу отследить из-за чего у некоторых пользователей в логах не создается нормально сессия

Логи полны ошибок:
[error] 11917#0: *11702441 FastCGI sent in stderr: "PHP message: PHP Warning: session_start(): The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in {FILE} on line {LINE}" while reading response header from upstream, client: {IP}, server: example.ru, request: "GET {URL} HTTP/1.1", upstream: "fastcgi://unix:/tmp/wwwpool.sock:", host: "example.ru"
[error] 11917#0: *11702441 FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in Unknown on line 0
PHP message: PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php5) in Unknown on line 0" while reading upstream, client: {IP}, server: example.ru, request: "GET {URL} HTTP/1.1", upstream: "fastcgi://unix:/tmp/wwwpool.sock:", host: "example.ru"


Код для лога таких ошибок я сделал следующий:

if (!preg_match('/^([a-z0-9]+)$/', session_id())) {
    //session_id(); // string ''
}


В чем может быть дело?
Права на директорию 733. если бы что-то с правами было, то у всех бы не работало. а так только у части пользователей. Лог засорен этими варингами. Спасибо!
  • Вопрос задан
  • 1191 просмотр
Пригласить эксперта
Ответы на вопрос 1
chlp
@chlp
фулстек
Какая версия PHP? Может быть баг самой PHP https://bugs.php.net/bug.php?id=68063 и просто пора обновиться?
Либо проверять успех выполнения session_start() и в случае неудачи генерить свой.
Либо если эти ошибки идут на вывод пользователям, то злоумышленник специально в куки в session_id запихивает некорректные символы и получает ошибку, чтобы посмотреть пути.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы