Как бороться с атакой по регистрационной форме?

Вопрос по процессу регистрации

Я думал о проверке электронной почты и играл с каким-то приложением. Что, если

-) злоумышленник напишет сценарий, который регистрирует миллионы аккаунтов с разными случайными адресами электронной почты (все существующие, электронные письма людей). Затем, когда люди регистрируются, он выдаст сообщение, что электронная почта уже существует в БД?

-) Или даже проще, что если пользователь зарегистрируется с чужим адресом электронной почты? Регистрация Ajax запускает создание ИД пользователя и информации в пользовательской таблице в БД, но проверка не выполняется.

Но тогда, когда "реальный" пользователь с регистрацией электронной почты, электронная почта уже занята...? Поскольку не может быть 2 адресов электронной почты одновременно, существует в БД (поскольку скрипт не сможет различить между пользователями....

1 ответ

Решение

Во-первых, вы должны попытаться определить, отправляет ли вам один и тот же IP несколько запросов на регистрацию в течение короткого периода времени, и занести его в черный список (хотя бы на некоторое время).

Во-вторых, даже когда отправлено письмо с подтверждением - вы можете сделать много вещей, чтобы избежать проблемы "повторной регистрации", вот несколько примеров:

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