Каковы наилучшие способы предотвращения поддельных регистраций?
Я хотел бы узнать больше о решениях, ограничивающих регистрацию на веб-сайте только для людей.
Капча может показаться правильным решением, но, как оказалось, это не так хорошо, как кажется. И это не проблема, если решение не подходит для слепых, глухих и т. Д.
5 ответов
Мое новое веб-приложение использует процесс, который делает это действительно простым для пользователя и безопасным для меня.
- Пользователь переходит на страницу входа, вводит свой адрес электронной почты и нажимает на флажок "Я подписываюсь".
- Пользователь нажимает "зарегистрироваться", его адрес электронной почты вставляется во временную таблицу SQL (называется
signups
) и на адрес электронной почты отправляется письмо со ссылкой для подтверждения. - Пользователь нажимает ссылку для подтверждения, которая приводит его на страницу "Создать пароль".
- После того, как пользователь создает свой пароль, адрес электронной почты и пароль вставляются в
users
таблица - и запись вsignups
таблица удалена.
Это делает это легко и надежно.
signups
Таблица также включает в себя случайный хэш SHA1 (для ссылки проверки), отметку времени, установленную на 12 часов после регистрации, и IP-адрес.
Все записи в signups
таблица, у которой есть отметка времени с истекшим сроком, удаляется в определенные части дня.
Обновить
С момента написания этого ответа я обнаружил, что защита формы регистрации от роботов - это бесконечная битва.
Со временем разрабатываются новые технологии и методы для обхода мер безопасности. Лучшее, что может сделать команда разработчиков, - это периодически проверять качество регистраций и придумывать способы сделать их форму регистрации более безопасной и интуитивно понятной.
Да, это большая часть работы и ресурсов, которые в нее вкладываются, но уверенность в форме регистрации и качестве регистраций стоит затрат.
Проверка адреса электронной почты и разрешение доступа только тем пользователям, которые подтвердили свою электронную почту, является самым простым и быстрым решением.
В зависимости от того, насколько целенаправлен ваш сайт, используйте honeypot
может быть довольно эффективным.
Короче говоря, у вас есть поле в форме с общим именем - скажем, email
, Ваш актуальный email
поле имеет другое случайное имя, например larp
,
Скрыть email
поле с использованием CSS, и включите текстовую метку, указывающую пользователям оставить это поле пустым, если они увидят его.
Если какие-либо регистрации приходят с email
Заполните поле, отправьте сообщение об успешном завершении и затем оставьте его.
Вместо капчи (набирая слова, отображаемые на картинке) я видел сайты, которые требуют от вас ответа на вопрос, обычно основную математику. Я не реализовал их, но я видел их в нескольких местах, так что это должен быть плагин для разных CMS и других.
Суть в том, что любая система в итоге будет обойдена. Вы можете свести к минимуму регистрацию ботов, но по опыту могу сказать, что есть люди, которые платят другим людям (которые могут пройти практически любой тест) за регистрацию на веб-сайтах - плата, как правило, очень низкая, но всегда найдутся люди, которые сочтут это приемлемым.
Таким образом, наряду с тем решением, которое вы используете, вы захотите периодически переоценивать это решение, и вам нужно, чтобы человек проверял новые регистрации (возможно, один раз в день?), Чтобы отсеять нескольких ботов, которые действительно получают через.
Вы можете попросить пользователей прослушать аудиофайл и ввести слово в текстовое поле. Это то, что я хотел сделать для phpBB3, но, увы, они не позволяют разметку HTML для своих вопросов проверки. В качестве альтернативы, вы можете сделать глубокую защиту, и сделать CAPTCHA только частью процесса.