Как побороть спам на 1С-Битрикс?

8k
Алексей,
Как побороть спам на 1С-Битрикс?

Процесс спама уже настолько эволюционировал, что и e-mail адреса у спамеров реальные и каптча стандартная для них не проблема.

Процесс спама уже настолько эволюционировал, что и e-mail адреса у спамеров реальные и каптча стандартная для них не проблема.

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

AddEventHandler("iblock", "OnBeforeIBlockElementAdd","blockSpam");

// Блокирует добавление элементов со ссылками в описании
function blockSpam(&$arFields) {

	global $USER;

	if (!$USER->IsAuthorized()) {
		if (strpos($arFields["PREVIEW_TEXT"], 'http') !== false) {
			global $APPLICATION;
			$APPLICATION->throwException("К сожалению, Ваш комментарий не может быть опубликован.");
			return false;
		}
	}

	return true;
}

Такое небольшое правило убирает большую часть спама, но не всю. Дальше можно добавить еще несколько правил:

  1. Сообщение должно содержать кириллические символы (можно использовать если ваша аудитория состоит только из русскоговорящих). Таким образом можно избавиться от "зарубежного" спама.
  2. Сообщение не должно содержать определенные ключевые слова. Анализируете спам, смотрите какие "мусорные" слова там повторяются и добавляете фильтр по ним.
  3. Премодерация публикуемых сообщений (муторно, долго, но иногда без этого не обойтись)
  4. Черный список по IP

Рано или поздно все эти правила обойдут или они будут создавать неудобства для "хороших" посетителей сайта. Если знаете как продуктивнее бороться со спамом, напишите комментарий, буду благодарен.

В этом блоге стоит каптча и блокировка по словам, но всё равно изредка прилетает спам, поэтому включена премодерация для неавторизованных пользователей. Но и это иногда обходится, приходит спам от авторизованного пользователя, хотя на сайте стоит регистрация через подтверждение e-mail. Приходиться вручную блокировать таких пользователей.

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 6 августа 2018 | Обновлено 3 мая 2020
спам, костыли
Поделиться
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
23 мар 2023
хм.. у меня нет такого /bitrix/php_interface/init.php или /bitrix/init.php , версия битрикс 16
Алексей
23 мар 2023
wordskills.ru, если файла /bitrix/php_interface/init.php нет, его можно создать.
3 мая 2020
Здравствуйте! А как добавить остальные правила, которые привели вы в статье? В первую очередь интересно добавления правила по ключевым словам.
Алексей
3 мая 2020
Константин, добрый день. В примере проверяется наличие http в тексте, вместо http подставьте любое слово которое чаще всего встречается в сообщениях спама, но не может встречаться в сообщениях пользователей.
3 мая 2020
Алексей, благодарю за ответ. А как указать несколько слов?
Алексей
3 мая 2020
Константин, сделайте массив слов и проверяйте вхождение через in_array()
3 мая 2020
Алексей, попробую. И последний вопрос... Не подскажите в какой файл разместить код? /bitrix/init.php - этого нет. Если создать там такой файл, сайт перестает работать. /bitrix/php_interface/init.php - записываю сюда. Просто вставляю код в конце файла, изменений никаких.
Алексей
3 мая 2020
Константин, /bitrix/php_interface/init.php. Возможно ваша форма сделана не на инфоблоках. Обратитесь к разработчикам работающим с 1С-Битрикс, они сделают.
1 дек 2019
Алексей, а в какой файл нужно добавить этот код указанный выше?
Алексей
1 дек 2019
renosklad, /bitrix/php_interface/init.php например.
3 ноя 2018
А нельзя подключить капчу от гугла? Recaptcha, по-моему она отлично справляется? Также от спама отлично помогает галочка "согласен на обработку персональных данных" - пока галочку не поставишь, сообщение не отправляется, спама нет с таких сайтов вообще.
Алексей
3 ноя 2018
Владимир, рекаптча да, хороший вариант, но с ней могут быть проблемы (например из-за блокировок, хотя щас вроде все в порядке). Галочка не всегда помогает.
Процесс спама уже настолько эволюционировал, что и e-mail адреса у спамеров реальные и каптча стандартная для них не проблема.