Skip to content

Подключение защиты к произвольным формам 1C Битрикс

CleanTalk edited this page Apr 24, 2014 · 1 revision

Table of Contents

ОБЩИЕ СВЕДЕНИЯ

Антиспам модуль от CleanTalk для защиты сайтов на 1С-Битрикс от регистраций спам-ботов и публикации спам-комментариев.

Главные особенности

  • Не нужна CAPTCHA и пр.
  • Защита от спам-ботов и ручного спама.
  • Автомодерация - автоматическия публикация релевантных комментариев.
  • API - доступные методы для встраивания защиты от CleanTalk в ваши модули и шаблоны.

Что такое 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 метод.

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