Японский keyword-хак на WordPress: как найти и вылечить
«Japanese keyword hack» или «японский хак» — одна из самых упорных атак на сайты на WordPress и других движках. Суть проста: на вашем домене автоматически создаются тысячи страниц с японским или китайским текстом о поддельных товарах. Поисковик индексирует их, а вы узнаёте о проблеме от клиента или из отчёта Search Console.
Признаки
| Где смотреть | Что видно при заражении |
|---|---|
| Выдача по запросу site:домен | Страницы с иероглифами и товарами-подделками |
| Search Console, отчёт «Страницы» | Резкий рост числа проиндексированных страниц |
| Search Console, «Запросы» | Показы по японским запросам и названиям брендов |
| Файл sitemap.xml | Тысячи адресов вида /product-123456 или с иероглифами |
| Файлы на сервере | Свежие файлы в корне и в папке тем с «случайными» именами |
| Журнал сервера | Пики запросов на непонятные URL и вызовы одного скрипта |
Часто страницы видит только робот, а при обычном заходе вы получаете 404 или главную страницу. Поэтому инструменту нужно сравнивать, что получает человек и что получает Googlebot.
Как это работает технически
В корень сайта или в каталог темы подкладывается скрипт-генератор. В .htaccess добавляются правила, которые направляют запросы к несуществующим страницам на этот скрипт. Он создаёт страницу на лету, подставляя ключевые слова из запроса. Параллельно файл карты сайта пополняется адресами, чтобы поисковик быстрее нашёл новинки. Для защиты от обнаружения скрипт отдаёт сгенерированный контент только роботам, а посетителю показывает ошибку.
Лечение по шагам
- Сделайте копию файлов и базы, пока заражение не затёрто, и отключите автообновление, чтобы не потерять следы.
- Найдите свежие файлы. Команда поиска файлов, изменённых за последние недели, покажет подложенные скрипты. Сравните список с чистым дистрибутивом.
- Проверьте .htaccess и конфиг веб-сервера. Уберите правила, которых вы не писали.
- Просмотрите базу. Таблица настроек, записей и пользователей: лишние администраторы, подмененные адреса сайта, вставки в виджеты.
- Замените ядро, тему и плагины чистыми версиями с официальных сайтов. Не восстанавливайте вручную: дубликаты бэкдоров остаются в «обычных» файлах.
- Смените пароли и секретные ключи в wp-config, а также пароли хостинга и базы.
- Верните чистую карту сайта и сгенерируйте её заново.
- Удалите ложные страницы из индекса. Страницы должны отдавать 410 или 404; затем подайте их на удаление и запросите перепроверку.
Сколько ждать восстановления
Удаление ложных страниц из индекса идёт неделями, потому что их тысячи. Позиции настоящих страниц возвращаются в ту же скорость, а иногда медленнее, если сайт долго был заражён. Чтобы ускорить процесс, подавайте актуальную карту сайта, следите за отчётом по страницам и проверяйте, что новые ложные страницы не создаются.
Профилактика
- Обновления движка и плагинов раз в неделю, удаление неиспользуемых.
- Права на файлы: запрет записи в корень и тему для веб-сервера.
- Двухфакторная защита админки и отдельные пароли.
- Мониторинг изменений файлов и еженедельная проверка снаружи. Раз в неделю проверяйте сайт снаружи.
Вопросы и ответы
Это точно японский хак, если в выдаче иероглифы?
Признаки сильные. Подтверждают его сгенерированные страницы, лишние файлы-генераторы и изменённые правила .htaccess. Всё это проверяется на сервере.
Почему страницы появляются заново?
Остался бэкдор или незакрытая уязвимость. Достаточно одного скрипта-генератора, чтобы заражение вернулось.
Можно ли просто закрыть страницы в robots.txt?
Нет. Поисковик перестанет их обходить, но не удалит из индекса. Нужны коды 404 или 410 и запрос на удаление.
Затронуты ли сайты не на WordPress?
Да. Бывает на Joomla, OpenCart, Битрикс и самописных сайтах. Схема та же, отличаются места, где прячется скрипт.
Сколько стоит очистка?
Зависит от размера заражения и движка. В направлении «Скорая помощь сайту» цена и срок видны в калькуляторе заранее.
