ранд (1,1000) - это 10 бит энтропии.MD5ing это не добавляет ни одного.В среднем злоумышленнику потребуется 500 попыток для подтверждения учетной записи.Никакое ограничение скорости не поможет вам, так как опытные злоумышленники арендуют или уже владеют ботнетом, который будет использоваться для проверки учетных записей.
Будьте осторожны и используйте 128 бит энтропии в ссылках для проверки.В PHP openssl_random_pseudo_bytes (16, true) - это переносимый способ получения криптографически сильных случайных байтов, но если вы используете хост под некоторым дистрибутивом Linux или одной из ОС BSD, чтение / dev / urandom также является приемлемым выбором..
Также ставьте под сомнение мудрость проверки учетных записей вообще, многие люди используют одноразовые электронные письма, которые нельзя отследить, именно для этого (и ни один ваш черный список никогда не будет актуален).