регистрация reCAPTCHA

Боты и всяческие Хрумеры являются конечной точкой эволюции человечества, к сожалению, эта точка вызывает радость у единиц, у остальных же регистрирует праведное негодование, икоту и нервные колики. Блог Zegeberg бомбили и боты, и XRumer, с первыми я справился довольно быстро с помощью скрипта, с Хрумером пришлось бороться только с помощью reCAPTCHA V2. Ниже я расскажу, как интегрировать рекапчу на Joomla 3, в том числе, поведаю, как поставить её на JComments.

секретный и публичный ключи

Процедура первая – регистрация и ключ

Для начала надо зарегистрировать сайты на https://www.google.com/recaptcha/intro/android.html, для чего переходим на страницу, ищем справа вверху синее окошко «Получить reCAPTCHA» и зеленеем от ожидания.

Ниже в окне «Регистрация сайтов» выбираем reCAPTCHA V2, указываем домены, на которых хотим её использовать и принимаем пользовательское соглашение.

После регистрации вы получаете два ключа – публичный и секретный.

Интеграция reCAPTCHA на joomla

Ключи на руках – счастье в кармане, переходим в админку Joomla. Для начала идём по пути наименьшего сопротивления:

Система – Общие настройки – Настройки сайта

Ищем пункт «CAPTCHA (по умолчанию)» и ставим

CAPTCHA – reCAPTCHA

С версии Joomla 3.8.6 V1 нет, если движок моложе, то выбираем V2 вручную.

Теперь идём в компоненты – плагины, ищем:

CAPTCHA - reCAPTCHA

И включаем его безо всяких настроек и перестроек, указав только два полученных от google ключа.

замена файла tpl_form.php

Теперь на странице контактов при отправке письма будет появляться гугловская капча…. Дело решено? Отнюдь, так как спам на 99% идёт через компонент JComments, которому чихать на системные настройки joomla.

reCAPTCHA V2 в JComments

По умолчанию в JComments стоит буквенная капча, которая ломается Хрумером, как консервная банка с тушёнкой в руках голодного туриста. В настройках компонента нет возможности переключиться на reCAPTCHA. Что делать, как защитить сайт от спама в комментариях и найти в мире красоту и гармонию?

замены файла jcomments.ajax.php

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

components\com_jcomments\tpl\default\tpl_form.php

components\com_jcomments\jcomments.ajax.php

Ниже я предлагаю готовые файлы tpl_form.php и jcomments.ajax.php, просто замените старые на новые и на вашей улице тоже перевернётся грузовик с тульскими пряниками. Код замены универсальный, подходит для всей линейки joomla 3 и не зависит от цифр публичного и секретного ключа. Фома-неверующий может сделать бекап, но файлы взяты с этого блога, они рабочие и не нуждаются в корректировке.

Вот архив rar, в котором две изменённых файла JComments.

Ах, Joomla-Joomla, с версии 3.9.5 интеграция не работает, ищу решение, пока его нет. Как временный вариант предлагаю, вместо reCAPTCHA, использовать обычную капчу и запрет на ссылки в комментариях. Спамеров может остановить, по крайней мере, не будет такого азарта. Как запретить спамить ссылками написал тут. Что касается полного решения проблемы, то оно тут в виде компонента Jcomments со встроенной Рекапчей от Гугл. Скачивайте на здоровье.