Сегодня я заметил, что в моих файлах сеансов для сайта есть несколько файлов с именами файлов, которые значительно меньше остальных, например:
Стандартный файл сеанса:
sess_0020cc255681808f78c08b67cd88cbcea13f45ee7629754ed82ccb8b010cf83d2b353b7136847f2876d99f3297a5def5bcc62b433d6d56d7f1b301f82c833aad
(длина файла длиной 5 + 128 символов)
Исключительный файл сеанса:
sess_629aca24e094f17d02b3d105ebe9e5d4
(длина файла длиной 5 + 32 символа)
Этот сайт очень занят и имеет много трафика (~ 22 тыс. посетителей в формате pcm), при просмотре папки сеанса на этих очень коротких названных файлах сеанса есть ~ 1% (фактически 0,92%).
У меня в прошлом читать много на сессиях, прежде чем внедрять этот редизайн сайта в прошлом году (2015), и из этого в настоящее время есть в моем php.ini
:
session.cookie_httponly=1
session.use_only_cookies=1
session.cookie_secure=1
session.entropy_file=/dev/urandom
session.hash_function=whirlpool
session.session.use_trans_sid=0
session.entropy_length=32
EDIT (дополнительные):
session.hash_bits_per_character = 4
session.sid_length
undefined (undefinable), поскольку эта сборка использует PHP 5.6.2
Что, насколько я знаю, должно быть в целом прекрасным. Я прочитал очень немного других тем о том, как обеспечить минимальную длину файла, хотя я читал разные вещи об использовании session.entropy_length
, но это не означает, Очевидно, что это относится к этой проблеме.
Значение entropy_length является единственным, что я не уверен в его использовании и необходимости.
Мои вопросы
- Что заставляет 1% сеансов иметь длину всего 5 + 32 символа?
- Как установить его так, чтобы все сеансы имели одинаковую длину (5 + 128 chrs)
Я понимаю следующий вопрос, который я могу попробовать и вижу, поскольку это не наносит вреда, но если указанное решение предназначено для session.entropy_length
, это было бы полезно знать, Кажется мало литературы вокруг того, что entropy_length фактически - практично - для.
-
Увеличивает ли значение продолжительности сеанса значение энтропии?[NO]
Я думаю, что в настоящее время может возникнуть небольшая потенциальная проблема с конфликтом имен сеансов, и он откровенно ошибается, так как так много файлов сеансов настолько удивительно длинны, но заметное меньшинство являются относительно маленькими.
Обновление
Из комментариев есть некоторые детали, которые могут стоить мне обобщить здесь:
- Проблема не в моем браузере (!!)
- Это использование PHP версии 5.6.2
- LAMP stack на сервере [single] WHM.
- Если PHP-cli запущен, он может/будет запускаться только хостами сервера, хотя я действительно сомневаюсь, что они его запускают. Я их хорошо знаю и достойный клиент, поэтому...
- Я проверил и подтвердил, что файлы сайта
htaccess
не вносят никаких изменений в какой-либо аспект PHP - Сервер работает с очень небольшим количеством журналов ошибок (у меня 14 ошибок с прошлой недели, с посещений 9k, ошибок всех 404s от скребок робота, пытающихся взломать Wordpress [сайт не является wordpress].)
- PHP запускается через suPHP (неизвестная версия в настоящее время), я также рассматриваю обновление suphp, но я сомневаюсь, что это напрямую связано с этой проблемой.
- Из предложения Райана Винценса я настрою уведомление, когда будет сделано более короткое время сеанса 128chr (и, надеюсь, с какого адреса)
- Папка хранения файлов сеанса определена в PHP.ini, поэтому, если используется внешний PHP.ini, я ожидаю, что сеансы появятся в других папках, таких как
/temp
.