Json Rest API WordPress — что это такое, и как корректно его отключить

rest api wordpress
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

Грамотная поисковая оптимизация требует знания особенностей движка WordPress и его уязвимых мест. В числе мер по ускорению ресурса и улучшению его SEO-показателей вам потребуется отключить на сайте WP REST API.

JSON REST API: что это, и для чего нужен на сайте WordPress

Встроенный в движок WP функционал JSON REST API позволяет реализовывать современные возможности на сайтах. Он служит для обмена данными между скриптами внутри ресурса, написанными на разных языках программирования, или с внешними сервисами.

Рассмотрим по отдельности, что означает каждое слово, входящее в понятие JSON REST API.

API — интерфейс обмена информацией

API — это широкое понятие в CMS WordPress представляет собой интерфейс для обмена данными между скриптами внутри сайта, а также с внешними приложениями. Через него другие сервисы могут подключаться к сайту удаленно и получать данные для своих нужд.

Аналогично ваш сайт может соединяться с внешними сервисами и брать какой-либо контент. Например, обмен данными может происходить между интернет-магазином и программой бухгалтерского учета.

JSON — текстовые файлы для обмена данными

JSON — это текстовый формат файлов, в которых содержатся данные в виде объектов JavaScript.

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

REST: отправка и получение данных

REST — этот протокол использует методы HTTP для получения и отправки информации. Он также применяется для сжатия передаваемых данных и ускорения передачи.

API-интерфейс на сайте WordPress вам может потребоваться в одной из трех ситуаций:

Если вы разрабатываете свою тему или плагин с использованием JavaScript и нужно, чтобы данные передавались из БД сайта в эти скрипты. Для этого потребуется зашифровывать их в формат JSON и воспользоваться интерфейсом для передачи.

Если вам нужно подключиться к стороннему сервису и получать от него данные для использования на сайте WordPress, то данные также будут поступать в формате JSON.

Если вы разрабатываете внешнее приложение, которое будет отправлять данные на сайт WP или получать их от него, то обмен тоже будет осуществляться посредством API-интерфейса в формате JSON.

Если все три пункта к вам не относятся, лучше отключить этот функционал. Он может тормозить работу сайта и плохо влиять на SEO-продвижение.

Как работает REST API в WordPress: примеры

Работа с постами

REST API позволяет путем создания HTTP-запросов получать данные из WP и использовать, например, для вывода на фронтэнд. Через запрос вы можете получить список записей, создать новый пост, обновить его или даже удалить.

Кэширование ответов REST API

Если на вашем ресурсе WP высокий трафик и вы используете API-интерфейс, то из-за увеличения запросов к БД сайт может начать заметно притормаживать.

Если такое происходит, то есть способ справиться с проблемой. Для этого нужно включить кэширование. Оно позволит сохранять ответы API и использовать их при последующих запросах к БД.

Для кэширования ответов REST API можно воспользоваться специальными плагинами.

Аутентификация

При обмене данными между сайтом WordPress и внешними сервисами по API-интерфейсу необходимо реализовать аутентификацию, что означает вход пользователя и предоставление ему необходимых прав.

Эта задача осуществляется несколькими способами:

  • По cookies. В этом случае в запросе требуется сообщать специальный nonce-код.
  • С использованием JavaScript. Этот метод не требует передачи nonce-кода, API все необходимое делает сам.
  • Путем создания AJAX-запросов. Также потребует передачи nonce-кода при каждом запросе.

Gutenberg Block Editor

Блоки Гутенберг работают на JavaScript и для обмена данными с серверной частью сайта WordPress, написанной на PHP, используют REST API.

В частности, такой способ передачи информации применяется для обновления постов, хранения атрибутов блока и других операций.

Почему стоит отключить на WP REST API

Если вы не используете этот функционал на своем ресурсе WP, то его лучше отключить.

Из-за него логины пользователей становятся видны вне админки WP. Это делает сайт уязвимым для взлома. Хакерам остается лишь методом перебора подобрать пароли.
Также хакеры используют «дыры», которые появились в WordPress благодаря внедрению API-интерфейса, для проведения DDoS-атак на сайты.
Этот функционал может ухудшать позиции вашего веб-ресурса в поисковых системах. Он создает дубли, а также мусорные страницы, из-за чего поисковики могут пессимизировать сайт.
Увеличивается количество ошибок в работе сайта на WP. API-интерфейс может некорректно работать с некоторыми версиями серверного софта, что приводит к появлению неожиданных ошибок, включая ошибку 404.
Падает скорость работы WP из-за увеличения количества запросов к базе данных. Быстродействие ухудшает подключение REST API в шапке сайта.

Где в WP подключается JSON REST API

Вы можете легко найти подключение этого кода на вашем сайте WP. Зайдите на любую страницу, щелкните по окну браузера правой кнопкой мыши и выберите пункт «Исходный текст страницы».

В открывшейся вкладке нажмите Ctrl+F, вбейте в строку поиска wp-json. В результатах поиска вы увидите ссылку на файл json, которая располагается между тегами head. Если пройдете по этой ссылке, то убедитесь, что там находится довольно объемный файл.

Где подключается json в WP

Вставка кода такого объема в шапку может заметно тормозить сайт при его загрузке. Поэтому по возможности лучше избавиться от этого подключения.

Способы отключения REST API в WP

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

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

Существует два способа, с помощью которых можно управлять доступом к REST API. Это вставка кода в файл functions.php либо использование специальных плагинов. Рассмотрим оба метода.

Плагины WP для отключения REST API на WordPress-сайтах

Disable REST API — правила доступа и списки конечных точек

Отключение Rest API

Disable REST API — бесплатный модуль WP для решения проблем с API-интерфейсом. Позволяет создавать списки конечных пунктов, которым разрешен доступ к данным сайта. Также можно задавать правила доступа для разных ролей пользователей.

Если после настройки плагина пользователь, ограниченный в правах доступа, попытается подключиться к вашему сайту, то WP выдаст сообщение с ошибкой аутентификации.

Disable WP REST API — полное или частичное отключение

Отключение Rest Api корректно

Disable WP REST API — в старых версиях ядра WP плагин полностью отключает REST API для всех категорий пользователей. В новых версиях он работает иначе. API-интерфейс отключается только для незалогиненных юзеров.

Также плагин убирает ссылку в секции head. Таким образом, модуль защищает ваш WordPress-ресурс от несанкционированного доступа через API-интерфейс.

Clearfy Pro — лучшее решение для отключения REST API

Решение Clearfy Pro
Clearfy Pro — этот многофункциональный модуль от команды WPShop чистит код WP от линков wp-json. Тем самым он решает проблему с быстродействием и индексацией мусорных страниц.

Полностью REST API не удаляется. При залогинивании в админку все его функции становятся доступными, поэтому вы можете не переживать за работу важных плагинов.

JSON в Clearfy Pro

Если ранее мусорные страницы были проиндексированы и попали в выдачу поисковых систем, то посетители, которые перейдут по этим ссылкам, будут перенаправляться на главную страницу WP.

Преимущества плагина Clearfy Pro:

Модуль комплексно решает проблемы, связанные с подготовкой к продвижению сайта WP в поисковых системах. Вам не потребуется искать и устанавливать дополнительные плагины для каждой мелкой задачи.

Настройка не займет много времени. Компания-разработчик предоставляет подробную документацию на русском языке. А сотрудники техподдержки всегда готовы прийти на помощь в случае каких-либо проблем.

Плагин легкий и не создает дополнительной нагрузки на сервер. Также он не содержит каких-либо сторонних библиотек или фреймворков.

Забрать лицензию Clearfy Pro

Программный способ отключения REST API в WP

Вставьте следующий небольшой код в файл functions.php, не забыв предварительно сделать резервную копию сайта.

add_filter( 'rest_authentication_errors', 'code_disable_rest_api' );
function code_disable_rest_api( $access ) {
return new WP_Error( 'rest_disabled', __( 'REST API disabled' ), array( 'status' => rest_authorization_required_code() ) );
}

Этот код не отключает полностью json rest api в WP, а лишь ограничивает доступ для неавторизованных пользователей.

Проверка отключения JSON REST API

Чтобы проверить, отключен ли json rest api, разлогиньтесь из админки WP, а затем перейдите по ссылке вида ваш_сайт.ru/wp-json/.

При правильной работе хука вы больше не увидите в коде файл с огромным количеством кода. Вместо него будет отображаться всего лишь одна строка, оповещающая о том, что REST API отключен.

Что делать, если JSON совсем пропал и не работает?
Иногда бывает так, что некоторые плагины или темы WP полностью блокируют JSON на сайте. В этом случае выход один. Нужно вспомнить, какие из этих модулей или шаблонов были установлены недавно, и начать последовательно их отключать. Когда обнаружится плагин или тема, которая стала причиной проблемы, остальные решения можно будет включить обратно.

REST API на веб-ресурсе WordPress лучше отключить для незалогиненных пользователей. Таким способом вы защитите сайт от взлома и DDoS-атак, улучшите его производительность и SEO-показатели. Лучший способ это сделать — установить премиальный плагин Clearfy Pro. Он закроет доступ к REST API для неавторизованных юзеров, оставив активными все полезные функции этого интерфейса внутри ВордПресс-админки.

Скидка 15% на Clearfy Pro

Создай свой первый сайт на WordPress

Александр

В рамках блога стремлюсь доступно передавать многолетний опыт по созданию, технической поддержке, безопасности и SEO-оптимизации WordPress-сайтов.

Оцените автора
Добавить комментарий

×
WordPress:
прокачай свой сайт!

Скидка на премиум темы и плагины

Успей забрать скидку ⋙