Использование PHP-сессии для временного контроля


Я немного запутался в использовании сеансов для того, что я планирую. Пользователь, не вошедший в систему, посещает мой сайт и загружает файл. Этот пользователь контролирует владение файлом на протяжении всей сессии (устанавливается с помощью session_id ()). Однако, чтобы распознать, что пользователь имеет контроль, идентификатор сеанса вставляется в базу данных для проверки с этим идентификатором пользователя. Это хорошая практика? Насколько уникальны идентификаторы сеансов?

2   4  

2 ответа:

Идентификаторы сеансов гарантированно уникальны в пространстве используемых в данный момент идентификаторов. В принципе, все текущие сеансы имеют уникальный идентификатор.

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

Я бы создал другой уникальный идентификатор, сохранил его в сеансе и в БД. Некоторые фреймворки и библиотеки регенерируют идентификаторы сеансов в целях безопасности при каждом запросе, поэтому не стоит предполагать, что они никогда не изменятся во время сеанса пользователя. Единственное, в чем вы можете быть уверены с помощью идентификаторов сеансов, - это то, что он определенно будет уникальным.