Rest API в WordPress: лучшие способы для отключения

Чистим WordPress

Для максимальной оптимизации фреймворка “из коробки”, разработчики добавляют много часто неиспользуемых функций. Пример – JSON Rest API. Возможность создавать приложения на основе веб интерфейса обычно не внедряется вебмастерами, однако создает постоянную нагрузку на сервер. Разбираемся, как удалить из WordPress.

Rest API в WordPress: что это

Функционал, пришедший в базовую комплектацию движка с апдейтом 4.4. Его задача – создание приложений на основе своего сайта на WordPress. На деле эта нестандартная опция часто не используется пользователями, несмотря на ее гипотетический потенциал.

API

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

Rest

Rest – подвид апи. Его отличительная опция – поддержка как протокола http, так и https, что упрощает передачу контента. Кроме этого, дополнительным барьером безопасности прописываются гет запросы (передающие данные в ссылке), не дающие злоумышленникам легко перехватить передаваемые данные.

JSON

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

Почему нужно отключить Rest API в WordPress?

Отключая рест апи, я выделил для себя 4 главных причины:

  1. Наличие брешей в безопасности. Пока вы не используете эти механизмы, время идет, а обновления для них выходят редко. Поэтому со временем взломщики найдут в них уязвимые точки (к примеру – authentication) и попадут в админку вашего же блога, нанеся ему вред.
  2. Создание пассивной нагрузки на хостинг. Несмотря на то, что сама функция не используется, она все равно продолжает действовать и постоянно нагружает арендованные мощности, при этом не давая в полной мере реализовывать весь потенциал других возможностей.
  3. Дыра для DDoS атак. Путем генерации множества задач для API (отклонить пустые просьбы от стороннего клиента), чтобы он выдал ошибку 404, сервер будет нагружаться все больше и больше, в итоге отключившись. Это спровоцирует остановку работы всех сайтов, стоящих на этой машине.
  4. Увеличение скорости загрузки страниц и избыток cookie. Создавая каждое внешнее подключение (с тегом <link>) в хеад, вы увеличиваете время открытия ресурса. За этим последуют как санкции поисковых систем, так и снижения трафика (не только органического) с повышением количества отказов.

Удаление Rest API через WordPress и сторонние утилиты

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

При помощи Clearfy PRO

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

Rest API WordPress

Как работает: в отличие от ручных изменений, этот плагин автоматически уберет нежелательные объекты сразу как и из директории, так и из конфига блога на WordPress. Как включить опцию:

  1. Перейдите в раздел “Код” в конфигурации утилиты
  2. Активируйте первый чекбокс
  3. Сохраните изменения

Clearfy -15%

С помощью Disable Rest API

Утилита, решающая одну единственную задачу: удаление АПИ. Стоит отметить, что несмотря на свой маленький объем, идеально выполняет поставленные задачи, отличаясь удобной конфигурацией, позволяющей настраивать все до малейших деталей и отсутствием применения Python или memberlux, нагружающих веб-хостинг.

расширение WordPress

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

Скачать

Используя кастомную функцию

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

  1. Откройте ПУ арендованного хостинга (например через ядро ISPManager) или панель админа ВордПресс;
  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' );

После сохраните измененный документ и перейдите на сайт. Если верстка полетела (такое может случиться при использовании Woocommerce) или часть функций перестала работать – откатите изменения. В противном случае, у вас все получилось правильно и можно ничего не трогать.

Василий

Изучаю WordPress, занимаюсь разработкой и созданием шаблонов и плагинов. На этом блоге делюсь своими знаниями. Есть вопросы? Пишите в комментариях!

Оцените автора
Ускорение и оптимизация WP
Добавить комментарий