Проблема регистрации ботов на сайте

В интернет-магазине, разработанном на 1С Битрикс, стали в большом количестве регистрироваться боты.

Чтобы решить проблему, сначала попробовать поставить captcha на все формы регистрации и даже google captcha, это проще всего.

Но фейковые пользователи продолжали создаваться, обходя стандартную защиту, и решено было написать событие, блокирующее регистрацию ботов.
То что это боты понятно из значений логина, имени и фамилии.

Например, содержатся ссылки в имени и фамилии:
Имя: https://dwbxh.blogspot.tw/ - 886037 RUB GAZPROM
Фамилия: https://dwbxh.blogspot.tw/ - 886037 RUB GAZPROM
E-mail: dozervlz@gmail.com

Ботов можно определить по подстроке в имени: RUB GAZPROM, RUB TINKOFF.

Также боты используют в имени и фамилии слова: Bitrix, Support.




Исходя из имеющихся данных, напишем событие OnBeforeUserRegister, которое перед регистрацией пользователей делает проверку. Если бот будет определен, прерываем его регистрацию и делаем запись в логе.


AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserRegisterHandler");
function OnBeforeUserRegisterHandler(&$args)
{	
	if(preg_match("#GAZPROM#", $args["NAME"])
	|| preg_match("#Bitrix#", $args["NAME"])
	|| preg_match("#Support#", $args["NAME"])
	|| preg_match("#http#", $args["NAME"])
	){
		file_put_contents($_SERVER["DOCUMENT_ROOT"]."/log_AUTH.txt", date('d m o, H:i:s') . ' USER_HOST '.json_encode($args)." ==================== ".$args["EMAIL"]. PHP_EOL, FILE_APPEND);
		die;	
	}
	return true;
}

Событие добавим в файл init.php

После блокировки регистрации ботов можно добавить в стоп-лист по IP или заблокировать в файле .htaccess

Через несколько часов, после установки события зайдем в файл log_AUTH.txt (файл находится в корне сайта), в нем будут записи попыток регистрации ботами и в записях найдем USER_IP




Заблокировать пользователя по ip адресу можно через файл .htaccess:
Deny from 45.138.16.168

Если на сайте есть модуль Проактивная защита, то можно добавить IP в Стоп-лист:



Улучшить событие можно сделав программно по api добавление ботов в Стоп-лист.


07.02.2024

Семен Голиков.