Привет всем! В этой статье мы обсудим постоянные регистрации ботов и методы их борьбы.
Надежным методом является использование CAPTCHA, однако она не всегда удобна для пользователей и может усложнять процесс регистрации. Исходя из моих исследований поведения ботов, я разработал несколько улучшений, которые помогут вам снизить или полностью прекратить регистрацию аккаунтов ботами.
Для начала нам нужно понять паттерны, по которым происходят регистрации фиктивных аккаунтов. Я выявил две основные закономерности:
-
Имя и фамилия всегда имеют верблюжью нотацию и содержат три или более заглавных букв. Обычно в имени и фамилии присутствует только одна заглавная буква, но иногда они могут отсутствовать.
-
Иногда регистрация проходит с одинаковыми именем и фамилией, что нехарактерно для обычных пользователей.
Давайте начнем писать наши улучшения для борьбы с ботами. В первую очередь, нам нужно добавить проверку на наличие трех или более заглавных букв в имени и фамилии. Для этого мы будем использовать класс Validate.php и метод isCustomerName. Этот метод отвечает за проверку имени и фамилии. Мы переопределим его в файле override/classes/Validate.php и заменим его новым.
В этом методе мы используем регулярное выражение для определения количества заглавных букв в имени и фамилии.
Далее нам нужно определить схожесть имени и фамилии. Сначала мы создадим модуль, чтобы иметь возможность управлять и отлавливать момент регистрации бота или пользователя. Модуль можно сгенерировать здесь и установить.
В методе install() модуля добавим крючок $this->registerHook('actionSubmitAccountBefore') и перезагрузим модуль, чтобы зарегистрировать наш крючок.
Остается определить метод в классе модуля и выполнить сравнение имени и фамилии. Если они одинаковы, мы выведем ошибку и не позволим пользователю или боту завершить регистрацию.
Это все. Если вы хотите, чтобы я сделал это за вас на вашем сайте, напишите в чате или используйте другой удобный способ связи.
Оставьте комментарий, удалось ли вам это сделать или нет.