JSON Rest API в WordPress: что это, зачем нужно и как удалить

Чистим WordPress

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

Что это – Rest API в WordPress и как работает

Это метод создания приложений на основе блога. На практике, рядовой вебмастер никак не использует эту возможность, несмотря на то, что добавлена она была в обновлении 4.4, поэтому вопрос как включить я не буду рассматривать отдельно.

API

Метод извлечения информации из системы и ее транспортирования в независимое приложение. В веб приложениях – созданное на WordPress.

Rest

Rest – разновидность API. По-другому говоря, модуль, настраивающий апи для более корректной передачи информации. В основном особенен своей двусторонней поддержкой http и https и передачи всех данных по GET протоколу.

JSON

Важный, но при этом элементарный элемент функционирования. Это – JavaScript скрипт, служащий как обработчик, помогающего связаться софту и непосредственно WordPress (authentication). При этом его распознает большинство систем, что положительно влияет на совместимость.

Причины отключения Rest API в WordPress

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

  1. Образование уязвимостей. С каждым обновлением системы, часть функций остается неизменной, однако злоумышленники находят в них бреши. Это провоцирует появление лазеек, через которые они смогут получить доступ к админ-панеле и панеле управления хостингом;
  2. Использование ресурсов. Ни один хостинг не безграничен и при обилии неиспользованных возможностей, при этом их постоянной пассивной нагрузке, получается так, что сервер перегружается и не остается места на полезные опции.
  3. Упрощение проведения DDoS атак. Используя апи (в том числе и memberlux) в качестве уязвимого места, злоумышленниками будут проводиться атаки, в ходе которых будет создаваться множество пустых запросов (зачастую 404) или содержащих мало контента. Со временем, это спровоцирует остановку веб-сервера.
  4. Ухудшение скорости отображения. Мусорные сторонние подключения в шапке увеличивают вес документа, что негативно скажется на важном в глазах поисковых систем факторе – скорости загрузки.

Убираем Rest API при помощи кода и плагинов

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

Применяя Clearfy PRO

Известный ВордПресс плагин, решающий ряд основных задач: улучшение технического SEO, чистка кода и устранение проблем безопасности. Решая вопросы неприкосновенности админки, отключается Rest API. 

Rest API WordPress

Отключение самое простое: плагином очищается как <head>, так и отвечающие за это системные файлы в корневой директории. Негативных последствий не наступит (в работе не применяются технологии из ЯП Python), поэтому можно отдельно не проверять, функционирует ли сайт.

Clearfy

Через Disable Rest API

настройки по умолчанию

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

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

Установить

Через кастомную WordPress функцию

Помимо уже готовых решений для удаления Rest API, опытные вебмастера воспользуются и внедрением PHP кода, решающего эту же задачу. Предупрежу сразу, что новички в работе с кодом могут испортить верстку и нарушить всю работу сайта вместо его оптимизации. Как это сделать:

  1. Перейдите в панель управления веб-хостингом (пример – ISPManager) или админку WordPress;
  2. В ПУ сервера перейдите в директиву темы и найдите файл functions.php; в случае, если вы используете админ-панель: вкладка “Внешний вид”, раздел “Редактор тем”;
  3. Отступите строчку от завершения предыдущего фрагмента и вставьте следующее:
add_filter('rest_enabled', '__return_false');
remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );
remove_action( 'wp_head', 'rest_output_link_wp_head', 10, 0 );
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );
remove_action( 'auth_cookie_malformed', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_expired', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_valid', 'rest_cookie_collect_status' );
remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );
remove_action( 'init', 'rest_api_init' );
remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
remove_action( 'parse_request', 'rest_api_loaded' );
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );

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

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