-
Notifications
You must be signed in to change notification settings - Fork 4
Подключение защиты к произвольным формам 1C Битрикс
Антиспам модуль от CleanTalk для защиты сайтов на 1С-Битрикс от регистраций спам-ботов и публикации спам-комментариев.
- Не нужна CAPTCHA и пр.
- Защита от спам-ботов и ручного спама.
- Автомодерация - автоматическия публикация релевантных комментариев.
- API - доступные методы для встраивания защиты от CleanTalk в ваши модули и шаблоны.
CleanTalk - это SaaS сервис для защиты Web-сайтов от спама. CleanTalk использует методы защиты, которые невидимы для посетителей сайтов. Использование CleanTalk делает ненужным CAPTCHA, вопросы/ответы и другие методы защиты, затрудняющие обмен информацией на сайте.
Комментарии и запросы на регистрацию посылаются облаку CleanTalk, данные тестируются в облаке несколькими методами, затем сайт получает ответ принять или отклонить комментарий/регистрацию.
1. Получите ключ доступа на http://CleanTalk.org. 2. Установите модуль CleanTalk как обычно и введите ключ доступа в его настройки.
- Проверьте регистрацию пользователя с адресом "stop_email@example.com".
- Проверьте опубликовать комментарий с словом "stop_word".
Внимание: Модуль вносит дополнения в шаблоны: /bitrix/templates/.default/components/bitrix/system.auth.registration/.default/template.php /bitrix/templates/.default/components/bitrix/blog/.default/bitrix/blog.post.comment/.default/template.php /bitrix/templates/.default/components/bitrix/forum/.default/bitrix/forum.post_form/.default/template.php
Дополнения в этих шаблонах нужны для правильной проверки на JavaScript. Все дополнения CleanTalk располагаются между тэгами 'CLEANTALK template addon' и они будут корректно удалены при деинсталляции. См. эти шаблоны для полной информации. Рекомендуется добавлять дополнения CleanTalk в шаблоны, которые Вы хотите защитить. Используйте для этого API метод.
Есть 5 API методов класса CleanTalk.
1. FormAddon($sType)
@param string Тип защищаемой формы - только 'register' или 'comment' @return string Текст дополнения Универсальный метод для модификации шаблоны - добавляет в форму несколько скрытых полей. Используйте его в шаблонах, которые желаете защитить.
2. CheckAllBefore(&$arEntity, $bSendEmail = FALSE)
@param &array Объект проверки (комментарий или новый пользователь) @param boolean Сообщать адиину на почту об ошибках или нет (по умолчанию FALSE) @return array|null Результат проверки или NULL при плохих переметрах
Универсальный метод для проверки комментария или нового пользователя на спам. Он проводит саму проверку и шлёт админу сайта сообщения об ошибках, если есть (отсылается только 1 сообщение в 15 минут во избежание флуда).
Поля $arEntity зависят от значения $arEntity['type']: $arEntity['type'] = 'comment' определяет проверку комментария $arEntity['type'] = 'register' определяет проверку регистрации
Поля $arEntity должны быть следующими, как минимум:
$arEntity['type'] = 'comment'; $arEntity['sender_email']; $arEntity['sender_nickname']; $arEntity['sender_ip']; $arEntity['message_title']; // заголовок комментария на проверку если есть $arEntity['message_body']; // тело комментария на проверку $arEntity['example_title']; // заголовок комментируемой статьти если есть $arEntity['example_body']; // тело комментируемой статьти $arEntity['example_comments']; // заголовки и тела не более чем 10 последних // одобренных комментариев объединённых строками "\n\n". или
$arEntity['type'] = 'register'; $arEntity['sender_email']; $arEntity['sender_nickname']; $arEntity['sender_ip'];
Метод берёт все нужные данные автоматически из полей добавления в шаблон и т.д. См. код для для полной информации.Используйте этот метод в модулях. Метод нужно вызывать из событий OnBefore*.
3. CheckCommentAfter($module, $cid, $log_event = )
@param string Имя модуля, вызвавшего событие ('blog', 'forum', и т.д.) @param int ID добавленного объекта (комменатрий, сообщение и т.д.) @param string Префикс события системного журнала, для логирования
Дополнения к методу CheckAllBefore после проверки комментария/сообщения. Он заполняет внутренние таблицы CleanTalk в соответствии с результатом проверки для лучшего учёта спама и логирует событие CleanTalk в системном журнале. Используйте этот метод в модулях. Метод нужно вызывать из событий OnAfter* только для проверки комментариев/сообщений,не вызывайте его для проверки пользователей.
4. SendFeedback($module, $id, $feedback)
@param string Имя модуля, вызвавшего событие ('blog', 'forum', и т.д.) @param int ID добавленного объекта (комменатрий, сообщение и т.д.) @param string Тип обратной связи - только 'Y' или 'N' Отсылка результата ручной модерации на сервер CleanTalk. Это улучшает сервис CleanTalk.
Очень важно сообщать серверу CleanTalk о результате ручной модерации.Пожалуйста, не забывайте это делать. Используйте этот метод в модулях.
5. GetCleanTalkResume($module, $id)
@param string Имя модуля, вызвавшего событие ('blog', 'forum', и т.д.) @param int ID добавленного объекта (комменатрий, сообщение и т.д.) @return string|boolean Текст резюме CleanTalk если есть или FALSE если нет Информационный метод. Он возвращает резюме CleanTalk об обнаружении спама по ID комментария или сообщения. Используйте этот метод в модулях/шаблонах, см. примеры.
/components/bitrix/forum.message.template/templates/.default Эта папка содержит пример шаблона сообщения форума, который выводит модератору резюме CleanTalk прямо под телом сообщения. Нам это кажется удобным для модератора.
Не стесняйтесь обращаться к нам на https://cleantalk.org/forum