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

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

По мере роста популярности сайта перед каждым владельцем неизбежно встает проблема борьбы со спамом. В этой статье я постараюсь собрать все возможные способы по решению этого вопроса в 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%.

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

    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...

    fred

    У меня форма для отзывов уже с Капча от гугл. Хотя в код не лез и ничего не менял.

      admin

      admin

      Видимо, у Вас сторонний шаблон, в котором уже все настроено.

        fred

        Нет, Ваш шаблон. TrendShop.

        fred

        Нет, Ваш шаблон. TrendShop.
        P.S. Не обратил внимания, что ветка открытая. Читал ее из Инструкции в разлеле шаблона.

    Good-year

    Почему то у меня не показывает каптчу в задать вопрос. опция Использовать ReCaptcha для отправки рекомендаций и 'Задать вопрос' активна

      admin

      admin

      Опция Разрешить не вошедшему на сайт посетителю отправлять рекомендации или задавать вопросы активна?

        Good-year

        Была не активна, включил, заработало. Спасибо

          admin

          admin

          Хорошо.

            Good-year

            В форме задать вопрос, если забыть про каптчу, то выдает такую ошибку.
            [url=https://radikal.ru][img]https://c.radikal.ru/c07/1904/5a/14466f348a92.jpg[/img][/url]
            так и должно быть или должно быть?

            admin

            admin

            Скорее всего, это баг virtuemart.
            Нужно еще потестировать на чистой версии.
            Смогу сделать это в начале следующей недели, по результатам отпишусь в теме.

            admin

            admin

            Да, это баг virtuemart.
            В новой версии joomla появилась новая невидимая капча от google.
            В Менеджере плагинов активируйте и настройте плагин CAPTCHA - невидимая reCAPTCHA.
            В Система > Общие настройки > Сайт смените тип капчи в опции CAPTCHA (по умолчанию).

    Good-year

    CAPTCHA - невидимая reCAPTCHA. у меня такого плагина нет. Virtuemart 3.4.5

      Good-year

      Joomla!, 3.9.4.

        admin

        admin

        Может называть на английском.

          Good-year

          А я искал в установленных. невидимая это значит форма каптчи не будет появляться? как узнать что она работает. и как обстоят дела с этой каптчей при регистрации пользователей virtuemart?

            admin

            admin

            Попробуйте ее настроить и посмотреть будут ли регистрироваться боты.
            Я пока ее не тестировал, точно сказать не могу.

    7Hogik

    Cleantalk плагин не позволяет воспользоваться корзиной ""Шаблон AirShop". Добавил в исключение: https://www.oil02.ru/cart.html. Не помогло

    Василиса

    Отличный сайт, отличная статья. Огромное спасибо!

Комментарии закрыты

С 15-18 июня admin в отпуске.

Ответы на все вопросы и ссылки на товары будут присланы 19 июня.

Спасибо за понимание и хороших выходных.

×