Я создаю упражнение для своих пользователей, в котором пытаюсь сказать им, что использование mt_rand() не является хорошим вариантом с точки зрения безопасности. Я показал им обычного пользователя, который получает электронное письмо для сброса пароля. Токен генерируется следующим образом
Код: Выделить всё
mt_srand(ip2long( crc32($email));
$random_number = mt_rand();
Теперь я говорю им, что как только пользователь получит токен, мы можем легко его перепроектировать, используя
https://www.openwall.com/php_mt_seed/, что позволит нам получить начальное значение значение для любого случайно сгенерированного значения. Моя цель здесь — показать им, что если мы получим начальное число, это позволит нам получить доступ к токену администратора или какой-то катастрофический эффект. но похоже, что получение начального числа здесь бесполезно.
Если администратор попытается сбросить свой пароль, он будет использовать другой адрес электронной почты, следовательно, другой номер раздачи и другое случайное число. Если у меня есть доступ только к электронной почте администратора, как я могу показать своей аудитории катастрофический эффект mt_rand, используя тот же сценарий?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... ood-option