ProfiPHPProfiPHP
Категория: Полезное в PHP

Получить уникальное значение переменной в PHP

Прежде чем получить уникальное значение переменной давайте разберемся, для чего вообще это нужно?

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

Примеров можно привести очень много. Давайте перейдем к практике.

Первый вариант:
$rand = md5( session_id(  ).time(  ).$_SERVER['HTTP_USER_AGENT'] );
В данном примере переменная $rand с уникальным содержанием формируется с помощью алгоритма шифрования Md5, параметром которого является значение сессии, времени и информации о браузере пользователя.

Второй вариант:
$rand = substr_replace( sha1( microtime( true ) ), '', 12 );
Третий вариант:
$rand = substr( str_shuffle( 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM' ), 0, 10 );
На самом деле, для создания уникального значения переменной существует огромное количество разных способов.

Добавить комментарий

Имя:
Текст комментария: