Как убрать скрытую переадресацию на Joomla 4 с nginx

    Столкнулись с ситуацией, когда при первом клике по ссылке на сайте Joomla 4 происходит редирект на посторонний домен (например, r.rrzb.ru или p.2ad.wtf), а при повторном - открывается правильный контент? Это типичный признак вредоносного кода или инъекции, которая обходит стандартные плагины и htaccess. Разберём пошаговый план поиска и устранения проблемы для серверов на nginx.

    Почему это не плагины редиректа?

    В Joomla 4 есть встроенные инструменты управления переадресациями, но в вашем случае они отключены. Злоумышленники часто внедряют код напрямую в файлы системы или базу данных, минуя стандартные компоненты. Редирект срабатывает только при первом заходе, чтобы скрыть следы от администратора - это так называемая «тихая» инъекция, которая может использоваться для фишинга или накрутки трафика.

    Где искать вредоносный код?

    1. Проверьте файлы шаблона

    Шаблоны - самое уязвимое место. Откройте файлы в папке /templates/ваш_шаблон/. Особое внимание уделите:

    • index.php - часто вставляют скрипты в или перед .
    • template.js - проверьте, нет ли в нём динамической подгрузки внешних скриптов. Если файл пустой или содержит зашифрованный код, это тревожный знак.
    • error.php - редирект может быть прописан в обработчике ошибок.

    Используйте поиск по всем .php и .js файлам шаблона на наличие строк r.rrzb.ru, 2ad.wtf или base64_decode - часто вредоносный код закодирован.

    2. Проверьте файл configuration.php

    В корне Joomla находится configuration.php. В нём могут быть прописаны дополнительные параметры, подгружающие скрипты. Ищите строки, начинающиеся с public $, которые не относятся к стандартным настройкам (например, public $evil_redirect).

    3. Исследуйте базу данных

    Вредоносный код часто прячут в полях контента или модулей. Подключитесь к БД через phpMyAdmin и выполните SQL-запросы:

    SELECT * FROM jos_content WHERE introtext LIKE '%r.rrzb.ru%' OR fulltext LIKE '%r.rrzb.ru%';
    SELECT * FROM jos_modules WHERE content LIKE '%r.rrzb.ru%';

    Замените jos_ на префикс вашей базы. Если найдёте записи - удалите их и сбросьте кеш.

    4. Проверьте настройки nginx

    Поскольку .htaccess не работает, редирект может быть настроен на уровне сервера. Откройте конфигурацию nginx (обычно /etc/nginx/sites-available/ваш_сайт). Ищите директивы rewrite, return 302 или proxy_pass, ведущие на внешние домены. Если ничего подозрительного нет - проверьте файлы в /etc/nginx/conf.d/.

    Что делать, если код не найден?

    Если вы перебрали все файлы и базу, но редирект остаётся, возможно, заражён сам движок Joomla. В таком случае:

    • Сделайте резервную копию базы данных и файлов.
    • Удалите все папки и файлы Joomla, кроме images/ и tmp/.
    • Скачайте свежую версию Joomla 4 с официального сайта и загрузите на сервер.
    • Восстановите базу данных и проверьте, не появился ли редирект снова.

    Профилактика повторного заражения

    Чтобы избежать подобных проблем в будущем:

    • Регулярно обновляйте Joomla, шаблоны и расширения.
    • Удалите неиспользуемые шаблоны и плагины.
    • Установите фаервол (например, ModSecurity) и антивирус для сайта (ClamAV).
    • Используйте только проверенные источники шаблонов - скачанные с торрентов или форумов файлы в 90% случаев содержат вредоносный код.

    Часто задаваемые вопросы