Как бороться с атакой по регистрационной форме?
Вопрос по процессу регистрации
Я думал о проверке электронной почты и играл с каким-то приложением. Что, если
-) злоумышленник напишет сценарий, который регистрирует миллионы аккаунтов с разными случайными адресами электронной почты (все существующие, электронные письма людей). Затем, когда люди регистрируются, он выдаст сообщение, что электронная почта уже существует в БД?
-) Или даже проще, что если пользователь зарегистрируется с чужим адресом электронной почты? Регистрация Ajax запускает создание ИД пользователя и информации в пользовательской таблице в БД, но проверка не выполняется.
Но тогда, когда "реальный" пользователь с регистрацией электронной почты, электронная почта уже занята...? Поскольку не может быть 2 адресов электронной почты одновременно, существует в БД (поскольку скрипт не сможет различить между пользователями....
1 ответ
Во-первых, вы должны попытаться определить, отправляет ли вам один и тот же IP несколько запросов на регистрацию в течение короткого периода времени, и занести его в черный список (хотя бы на некоторое время).
Во-вторых, даже когда отправлено письмо с подтверждением - вы можете сделать много вещей, чтобы избежать проблемы "повторной регистрации", вот несколько примеров:
- Запускать очистку один раз в день - удаляя все записи пользователей, которые не проверяли свою учетную запись (по электронной почте) более 24 часов
- Не создавайте учетную запись пользователя, пока пользователь не подтвердит свою регистрацию (вы можете создать запись в другой таблице: например, UNVERIFIED_USERS). Делая это - вы гарантируете уменьшение задержек для существующих пользователей, когда такая атака происходит, - поскольку таблица USERS не будет изменена.
- Если пользователь попытался зарегистрироваться, и у него / нее уже "есть учетная запись", вы должны разрешить пользователю сбросить пароль, отправив другое подтверждающее письмо со ссылкой для этого.
- Вы можете использовать такие решения, как капча в регистрационной форме - для предотвращения таких атак. Сегодня есть умные боты, которые могут обойти капчу, поэтому вы также можете искать альтернативы капчи