Боремся со спамом в Joomla и Virtuemart

Опубликовано: 12 Октябрь, 2017
Категория: Общие вопросы, Сервисы
Комментариев: 12

По мере роста популярности сайта перед каждым владельцем неизбежно встает проблема борьбы со спамом. В этой статье я постараюсь собрать все возможные способы по решению этого вопроса в joomla и virtuemart.

Начнем со стандартной капчи, а в конце поговорим про её альтернативу - облачный антиспам.

Настройка reCAPTCHA для joomla

В Система > Общие настройки > Сайт выберем капчу по умолчанию.

В Менеджере плагинов активируем плагин CAPTCHA - reCAPTCHA.

Для активации плагина нужно получить публичный и приватный ключи для домена. Для этого зарегистрируем сайт по этой ссылке.

После регистрации сервис сгенерирует ключи

Добавляем ключи в настройки плагина.

С недавних пор у google появился новый тип невидимой капчи (Invisible reCAPTCHA), которая проверяет пользователя в фоновом режиме и показывается только если система "что-то заподозрит". Данный тип капчи пока не поддерживается joomla, поэтому используем reCAPTCHA V2.

Настройка капчи при регистрации

Если используется стандартная регистрация joomla, то в Пользователи > Менеджер пользователей > Настройки > Параметры пользователя выбираем reCAPTCHA.

Все будет работать правильно, чего не скажешь об использовании капчи при регистрации в virtuemart.

Если в Virtuemart > Настройки > Магазин активировать опцию Использовать ReCaptcha для Регистрации, то капча на странице регистрации появится, но если пользователь забудет ее активировать и попытается зарегистрироваться, то произойдет редирект на другую страницу. Этот вопрос поднимался на оф. форуме, но решения так и не было найдено, поэтому лучше либо не использовать капчу при регистрации пользователей в virtuemart, либо использовать плагин cleantalk, о котором чуть позже.

Настройки капчи для отправки рекомендаций

Чтобы добавить капчу в форму рекомендаций и вопроса по товару в Virtuemart > Настройки > Внешний вид активируйте опцию Использовать ReCaptcha для отправки рекомендаций и 'Задать вопрос'.

Настройка капчи для JComments

Если на сайте для вывода отзывов о товаре используется jcomments, то добавить капчу можно в Компоненты > JСomments > Настройки > Вид. После этого во вкладке Права активируем ее для разных групп пользователей.

По умолчанию используется kcaptcha, которая требует от пользователя ввода текста с картинки в отдельном поле.

Для настройки более дружественной для пользователей recaptcha от google нужно внести несколько изменений в файлы jcomments.

В файле /components/com_jcomments/tpl/default/tpl_form.php заменим

на

В файле /components/com_jcomments/jcomments.ajax.php заменим

на

В Расширения > Менеджер языков > Переопределение констант добавим новую языковую константу

Кроме этого нужно включить и настроить плагин reCAPTCHA, как это описано в начале статьи.

В результате форма для отзывов будет иметь следующий вид.

Облачный антиспам Cleantalk

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

Перед публикацией данные пользователя в фоновом режиме проверяются по базе спам ботов. Если "все хорошо", то идет публикация, иначе публикация блокируется.

Плагин уже несколько лет работает на этом блоге и за время работы заблокировал более 20 000 спам регистраций и комментариев.

Скачать cleantalk для joomla

После установки в настройках плагина Анти-спам от CleanTalk нужно ввести ключ доступа. Для получения ключа регистрируемся по этой ссылке и копируем ключ.

Смысл настроек плагина понятен из названия

Cleantalk блокирует спам в:

  • virtuemart
  • jcomments
  • формах обратной связи и формах регистрации

Вся статистика доступна в личном кабинете пользователя.

Сервис платный, но свои задачи решает на 100%.

12 комментариев

    vskuchmak

    спасибо, актуально и полезно

      admin

      admin

      Рад, что статья оказалась полезной.

    Garmon85

    К сожалению после ajax подгрузки соседних товаров recaptcha не появляется и форму уже не отправить без f5...

    Garmon85

    Сам спросил, сам отвечаю, для инициализации капчи и возможности комментирования нужно добавить следующий код

    в функцию Virtuemart.updateContent = function(url, callback) {
    в файле /components/com_virtuemart/assets/js/dynupdate.js

    Garmon85

    даже проще работает!

      admin

      admin

      Спасибо, что поделились.

    Mich

    Подскажите, как подключить обработку плагинов в настраиваемое поле? Хочу вывести галерею с помощью плагина simple gallery, но в настраиваемых полях обращение к плагину не обрабатывается.

    Mich

    Сам задал, сам отвечаю)
    Нужно в выводе поля подключить content.prepare вот так:
    echo JHtml::_('content.prepare', поле);

      admin

      admin

      Спасибо, что поделились.

    Алексей

    Спасибо за решение!

    К сожалению, капча не работает, если Форма добавления комментариев скрыта. Она просто не загружается при клике на "Добавить комментарий". Единственный рабочий вариант при открытой Форме добавления комментариев, но меня это не устраивает.
    Поигрался и откатился на КСАРТСНА... ((

      admin

      admin

      Да, recaptcha при скрытой форме не работает. Как вариант, можно скрывать и показывать форму не в настройках jcomments, а написать свой небольшой скрипт. Готового решения не предложу, но сделать в теории не очень сложно.

        Алексей

        Я тоже об этом подумал.
        Как вариант, можно загружать форму в модальном окне Bootstrap...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
Для вставки кода заключите его в теги [php] [/php]
*