После письма от хостинга вы видите «открытый REST API» и застреваете: нажать «отключить» и утром получить белый экран в редакторе, или не трогать ничего и дать ботам пройти по wp-json. Владелец салона уже прошёл через это — плагин «закрыть REST API» сломал сохранение акции в Gutenberg. За один вечер вы сможете закрыть для гостей опасные адреса, оставите админку и форму рабочими и получите 401 вместо списка логинов в инкognito.
Полностью вырубать REST API WordPress нельзя — сломается блочный редактор. Правильный путь: обновить ядро до патча WP2Shell (7.0.2 / 6.9.5 / 6.8.6), закрыть для гостей /wp-json/wp/v2/users и /wp-json/batch/v1, отключить xmlrpc.php если не нужен Jetpack. Сначала проверка «до», потом точечные правки, потом тест сохранения записи и формы.
REST API (программный интерфейс) — это служебный коридор между админкой WordPress и сайтом. Адрес wp-json нужен редактору, как электричество в офисе. Задача не вырубить свет, а запереть подсобку, куда заходят боты. На практике это делается без программиста через сниппет или готовый плагин.
В июле 2026 цепочка WP2Shell показала: даже без «плохих» плагинов опасен маршрут /wp-json/batch/v1. Официальная справка WordPress прямо пишет — не отключайте API целиком, используйте фильтр rest_authentication_errors. Обновление ядра важнее, чем просто спрятать wp-json за заглушкой.
- Разберите, какие точки входа оставляет открытыми обычный сайт услуг
- Проверьте сайт до правок: что видит гость без входа
- Обновите WordPress до патча WP2Shell — это база, не замена блокировки
- Закройте список пользователей и batch-маршрут для гостей
- Отключите xmlrpc.php и закройте перебор авторов через ?author=
- Оставьте рабочими форму заявки, Gutenberg и нужные интеграции
- Пройдите финальный чек-лист: как понять, что ограничить REST API получилось
- Что дальше
- Частые вопросы
- Можно ли полностью отключить REST API WordPress?
- Чем опасен открытый wp-json для обычного сайта услуг?
- Нужен ли xmlrpc.php салону или юристу?
- Как ограничить REST API без поломки формы на Contact Form 7?
- Какой плагин выбрать новичку?
- Достаточно ли спрятать wp-json, не обновляя WordPress?
Разберите, какие точки входа оставляет открытыми обычный сайт услуг

Главная боль — непонятно, что именно «открыто» и насколько это страшно. У типичного салона, юриста или мастера три отдельные двери, не одна кнопка в настройках.
wp-json — адрес вида ваш-сайт.ru/wp-json/. Через него редактор сохраняет записи. Но маршрут /wp-json/wp/v2/users по умолчанию отдаёт список пользователей гостям — боты собирают логины для подбора пароля.
xmlrpc.php — старый канал для мобильного приложения и Jetpack. На сайте услуг без удалённых публикаций он почти не нужен, зато часто бьют брутфорсом.
Перебор ?author=1 в адресной строке показывает страницу автора и подсказывает логин admin. Это не REST API, но та же боль «узнали, кого ломать».
Схема «две двери — две проверки»:
Гость открывает /wp-json/wp/v2/users → видит JSON с именами? → закрыть маршрут
Гость открывает xmlrpc.php → ответ не 403? → отключить xmlrpc_enabled
Проверьте сайт до правок: что видит гость без входа

Вторая боль — править вслепую и не понять, помогло ли. Пять минут в режиме инкognito (Ctrl+Shift+N) дают снимок «до».
- Откройте https://ваш-сайт.ru/wp-json/wp/v2/users — если видите JSON со списком имён, перечисление логинов открыто.
- Откройте https://ваш-сайт.ru/xmlrpc.php — рабочий ответ вместо ошибки значит канал жив.
- Проверьте https://ваш-сайт.ru/?author=1 — редирект на страницу автора раскрывает логин.
- Запишите версию ядра в Консоль → Обновления и сделайте бэкап перед правками — для WP2Shell нужны 7.0.2, 6.9.5 или 6.8.6. Пошагово про копию — в материале про бэкап WordPress перед правками.
Типичная ошибка — сразу ставить плагин «Disable REST API» без этой проверки. Потом утром редактор не сохраняет, а вы не знаете, что откатить.
Обновите WordPress до патча WP2Shell — это база, не замена блокировки

Третья боль — хостинг пишет про CVE-2026-63030 и batch API. Уязвимость затронула WP 6.9.0-6.9.4 и 7.0.0-7.0.1; патч — 6.9.5, 7.0.2, 6.8.6. Эксплуатация возможна без входа в админку. Сначала «Обновить сейчас» в консоли, потом точечно закройте batch для гостей. В реальном проекте клиент неделю прятал wp-json при ядре 7.0.1 — риск не ушёл.
Закройте список пользователей и batch-маршрут для гостей
Четвёртая боль — через wp-json видны логины админов. Решение не «выключить всё», а убрать конкретные маршруты или требовать вход.
Если нет программиста, настройте сниппет в WPCode (бесплатный) или Code Snippets: Вставки → Добавить новый → PHP, тип «Выполнять везде». Не правьте functions.php родительской темы — при обновлении темы код слетит. Надёжнее дочерняя тема WordPress или сниппет-плагин.
Без кода — плагин Disable WP REST API на wordpress.org или wp-rest-api-guard. В сниппете простыми словами: убрать users для гостей и вернуть 403 на batch/v1. Фильтры rest_endpoints и rest_pre_dispatch — «крючки» WordPress для короткого PHP-блока. Пугает код — активируйте плагин и переходите к проверке.
| Способ | Кому подходит | Откат за 1 минуту | Риск для редактора |
|---|---|---|---|
| Плагин Disable WP REST API | Новичок, один клик | Деактивировать плагин | Низкий при правильном плагине |
| Сниппет WPCode | Нужен контроль только /users | Выключить сниппет | Низкий при точечном коде |
| Полное отключение wp-json | Не рекомендуется | Часто только через FTP | Высокий — Gutenberg ломается |
Вердикт: для сайта услуг без WooCommerce начните с плагина или одного сниппета на users + batch. Не блокируйте весь namespace wp/v2 — формы Contact Form 7 и блоки могут перестать отправляться.
Отключите xmlrpc.php и закройте перебор авторов через ?author=
Пятая боль — не знаете, трогать ли xmlrpc. Если не пользуетесь Jetpack, мобильным приложением WordPress и удалённой публикацией — смело отключайте.
В сниппете добавьте фильтр xmlrpc_enabled → false. В инкognito xmlrpc.php должен отдать 403, не ответ «XML-RPC server accepts POST requests». Для ?author=N — хук template_redirect: редирект на главную, если гость не залогинен.
Оставьте рабочими форму заявки, Gutenberg и нужные интеграции
Шестая боль — «а вдруг сломаю форму на /kontakty/». Глобальное закрытие REST для всех гостей иногда ломает отправку с фронта. Поэтому wp-kama и официальный FAQ советуют rest_pre_dispatch — закрывать выборочно, а не одним тумблером.
Что должно продолжать работать после правок:
- Сохранение черновика в блочном редакторе — главный тест.
- Отправка тестовой заявки с формы — особенно если стоит Contact Form 7 или WPForms.
- Jetpack, WooCommerce, CRM — если используете, перед блокировкой проверьте документацию интеграции; им может понадобиться часть wp-json.
Если форма перестала отправляться — отключите последний сниппет, очистите кеш (кеширование WordPress) и проверьте снова.
Пройдите финальный чек-лист: как понять, что ограничить REST API получилось
Результат ограничения REST API виден по тем же признакам, что и в отчёте сканера — только теперь наоборот:
- В инкognito https://ваш-сайт.ru/wp-json/wp/v2/users возвращает 401 или 403, а не JSON со списком пользователей.
- xmlrpc.php недоступен гостю (403 или ошибка).
- После входа в админку черновик сохраняется без белого экрана.
- Тестовая заявка с формы доходит до почты или CRM.
- В Инструменты → Здоровье сайта нет новых критических ошибок.
- Версия ядра не ниже патча WP2Shell для вашей ветки.
Если что-то не сходится — откатите последний сниппет. Спам с формы — отдельная тема: reCAPTCHA для WordPress. Нет времени на PHP-крючки? Закажите настройку на странице услуг или напишите через форму (MAX, VK, WhatsApp, Telegram).
Что дальше
- Раз в квартал повторяйте проверку /wp-json/wp/v2/users в инкognito.
- После каждого обновления WordPress смотрите Здоровье сайта.
- Держите один рабочий бэкап перед любыми сниппетами.
- Читайте другие материалы в разделе статей про WordPress и заявки.
Вопросы по безопасности сайта — в Telegram-канале @DikiiTelegram.
Материал проверен: Андрей Дикий — сайты на WordPress и продвижение статьями (SEO/GEO).
Источники и дата: REST API Handbook и FAQ (developer.wordpress.org), wp-kama.ru, GitHub Advisory GHSA-ff9f-jf42-662q (WP2Shell), tweakswp.com; частотность запросов — Яндекс Wordstat от 2026-09-09 (MCP недоступен, без выдуманных цифр).
Частые вопросы
Можно ли полностью отключить REST API WordPress?
Нет — официальная документация предупреждает: сломается админка и Gutenberg. Ограничивайте доступ для гостей через rest_authentication_errors или убирайте отдельные маршруты, не весь wp-json.
Чем опасен открытый wp-json для обычного сайта услуг?
Гости могут прочитать список пользователей и упростить подбор пароля. В 2026 добавился риск batch/v1 при старом ядре. Закрытие users и обновление WordPress снижают угрозу без поломки редактора.
Нужен ли xmlrpc.php салону или юристу?
Обычно нет, если не используете Jetpack, мобильное приложение WordPress и удалённую публикацию. Отключение xmlrpc_enabled не ломает форму заявки и блочный редактор.
Как ограничить REST API без поломки формы на Contact Form 7?
Не блокируйте весь REST для гостей одной кнопкой. Закройте /wp/v2/users и batch/v1, протестируйте отправку формы в инкognito. При сбое отключите последний сниппет и проверьте кеш страницы с формой.
Какой плагин выбрать новичку?
Disable WP REST API для быстрого закрытия API гостям или WPCode для одного точечного сниппета. Перед активацией сделайте бэкап и запишите версию WordPress для проверки патча WP2Shell.
Достаточно ли спрятать wp-json, не обновляя WordPress?
Нет. WP2Shell эксплуатируется на уязвимых версиях ядра; блокировка batch — дополнение, не замена патча 7.0.2 / 6.9.5 / 6.8.6. Сначала обновление, потом точечные ограничения.
