В связи с частыми просьбами, побороть спам при регистрации, делюсь с вами одним из решений.
Добавляем исключение при регистрации на спам-ботов в Битриксе
Все обработчики события добавляются в init.php. Код будет работать как для новых пользователей, так и при сохранении старых (на всякий случай).
// добавляем обработчик события при регистрации AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserRegisterHandler");
// а заодно и при обновлении данных пользователем AddEventHandler("main", "OnBeforeUserUpdate", "OnBeforeUserRegisterHandler"); // описываем саму функцию function OnBeforeUserRegisterHandler($args) { if (strstr($args['NAME'], 'Вам оплатили') || strstr($args['LAST_NAME'], 'www.')) { $GLOBALS['APPLICATION']->ThrowException('Ошибка. Обратитесь к администратору!'); return false; } return true; }
Как видно из кода, в исключения попадают боты у которых в имени есть “Вам оплатили” ИЛИ в фамилии указывается www. Сразу скажу, решение не самое идеальное в плане проверки кода, strstr всё таки немного не для этих целей создавалась :).
Делитесь своими решения по борьбе со спамом в комментариях.