Насколько уникальный php идентификатор сессии

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

89
задан Jalov 3 July 2013 в 12:48
поделиться

5 ответов

Session_id может действительно быть дублирован, но вероятность является очень низкой. Если у Вас есть веб-сайт со справедливым трафиком, это может происходить однажды в Вас жизнь веб-сайта и будет просто раздражать одного пользователя для одной сессии.

Это не стоит для заботы о том, если Вы не ожидаете создавать веб-сайт очень интенсивного трафика или сервис для промышленности банка.

37
ответ дан e-satis 24 November 2019 в 07:20
поделиться

Это не очень уникально, как поставлено. В конфигурации по умолчанию это - результат хеша различных вещей включая результат gettimeofday (который не ужасно уникален), но если Вы волнуетесь, необходимо настроить его для рисования некоторой энтропии из/dev/urandom, как так

ini_set("session.entropy_file", "/dev/urandom");
ini_set("session.entropy_length", "512");

поиск "php_session_create_id" в код для фактического алгоритма, который они используют.

Отредактированный для добавления: существует генератор случайных чисел DFA, отобранный изодромным с предварением, смешанным со временем в мкс. Это не твердое условие уникальности особенно с точки зрения безопасности . Используйте энтропийную конфигурацию выше.

Обновление:

С PHP 5.4.0 значения по умолчанию сессии entropy_file к/dev/urandom или/dev/arandom, если это доступно. В PHP 5.3.0 этих директивы оставляют пустыми по умолчанию. Руководство

PHP
66
ответ дан Ja͢ck 24 November 2019 в 07:20
поделиться

Можно установить альтернативную функцию поколения хеша, если Вы хотите настроить способ, которым идентификатор сгенерирован (это - число на 128 битов, сгенерированное через MD5 по умолчанию). См. http://www.php.net/manual/en/session.configuration.php#ini.session.hash-function

Для получения дополнительной информации о сессиях PHP, попробуйте эту превосходную статью http://shiflett.org/articles/the-truth-about-sessions , который также связывается с другими статьями о фиксации сессии и налете.

11
ответ дан NullUserException 24 November 2019 в 07:20
поделиться

Я не нашел подтверждение на этом, но я верю проверкам php, если идентификатор сессии уже существует прежде, чем создать один с тем идентификатором.

люди проблемы перехвата сеанса волнуются по поводу, когда кто-то узнает идентификатор сессии активного пользователя. Это может быть предотвращено во многих отношениях для большего количества информации, на которой Вы видите эта страница на php.net и данная статья на фиксации сессии

3
ответ дан Ólafur Waage 24 November 2019 в 07:20
поделиться

Нет, идентификатор сессии не является GUID, но два пользователя не должны получать тот же идентификатор сессии, как они хранятся на стороне сервера.

2
ответ дан gizmo 24 November 2019 в 07:20
поделиться
Другие вопросы по тегам:

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