Для максимальной оптимизации фреймворка “из коробки”, разработчики добавляют много часто неиспользуемых функций. Пример – JSON Rest API. Возможность создавать приложения на основе веб интерфейса обычно не внедряется вебмастерами, однако создает постоянную нагрузку на сервер. Разбираемся, как удалить из WordPress.
Rest API в WordPress: что это
Функционал, пришедший в базовую комплектацию движка с апдейтом 4.4. Его задача – создание приложений на основе своего сайта на WordPress. На деле эта нестандартная опция часто не используется пользователями, несмотря на ее гипотетический потенциал.
API
API – аббревиатура, обозначающая возможность подключения стороннего софта через протокол. Эти способы используются в разработке как сайтов, так и программ.
Rest
Rest – подвид апи. Его отличительная опция – поддержка как протокола http, так и https, что упрощает передачу контента. Кроме этого, дополнительным барьером безопасности прописываются гет запросы (передающие данные в ссылке), не дающие злоумышленникам легко перехватить передаваемые данные.
JSON
Важнейшее звено в работе всей структуры. Это – скрипт на JavaScript, помогающий взаимодействовать отдельному окну (фрейму) с вашим WordPress ресурсом. Также положительное следствие от его работы – улучшение параметра совместимости.
Почему нужно отключить Rest API в WordPress?
Отключая рест апи, я выделил для себя 4 главных причины:
- Наличие брешей в безопасности. Пока вы не используете эти механизмы, время идет, а обновления для них выходят редко. Поэтому со временем взломщики найдут в них уязвимые точки (к примеру – authentication) и попадут в админку вашего же блога, нанеся ему вред.
- Создание пассивной нагрузки на хостинг. Несмотря на то, что сама функция не используется, она все равно продолжает действовать и постоянно нагружает арендованные мощности, при этом не давая в полной мере реализовывать весь потенциал других возможностей.
- Дыра для DDoS атак. Путем генерации множества задач для API (отклонить пустые просьбы от стороннего клиента), чтобы он выдал ошибку 404, сервер будет нагружаться все больше и больше, в итоге отключившись. Это спровоцирует остановку работы всех сайтов, стоящих на этой машине.
- Увеличение скорости загрузки страниц и избыток cookie. Создавая каждое внешнее подключение (с тегом <link>) в хеад, вы увеличиваете время открытия ресурса. За этим последуют как санкции поисковых систем, так и снижения трафика (не только органического) с повышением количества отказов.
Удаление Rest API через WordPress и сторонние утилиты
Путей удаления этого функционала всего два: внедряя новый код в файл системных функций или используя готовые модули. Второй вариант более безопасен как для новичков, которые могут испортить код, так и для вебмастеров, нежелающих следить за появлением дыр.
При помощи Clearfy PRO
Небезызвестное расширение, проводящее комплекс работ по сайту: устранение ошибок SEO и безопасности, полное очищение системного кода. В рамках повышения безопасности также отключает Rest API.
Как работает: в отличие от ручных изменений, этот плагин автоматически уберет нежелательные объекты сразу как и из директории, так и из конфига блога на WordPress. Как включить опцию:
- Перейдите в раздел “Код” в конфигурации утилиты
- Активируйте первый чекбокс
- Сохраните изменения
Clearfy -15%
С помощью Disable Rest API
Утилита, решающая одну единственную задачу: удаление АПИ. Стоит отметить, что несмотря на свой маленький объем, идеально выполняет поставленные задачи, отличаясь удобной конфигурацией, позволяющей настраивать все до малейших деталей и отсутствием применения Python или memberlux, нагружающих веб-хостинг.
СкачатьК моменту выпуска материала софт поддерживается командой разработчиков, которые его активно патчат и удаляют все появляющиеся дыры. Несмотря на это, вам все равно надо проверить совместимость конкретно этого расширения и ваших тем.
Используя кастомную функцию
Кроме стандартных способов, доступных для новичков, Rest API может быть также удален и вручную. Чтобы это сделать, необходимо иметь базовые знания работы с кодом (в основном PHP синтаксисом) и понимания структуры документа. С этой инструкцией вы сделаете это намного легче:
- Откройте ПУ арендованного хостинга (например через ядро ISPManager) или панель админа ВордПресс;
- В панели управления откройте корневую папку всего сайта, после выберите каталог темы и откройте файл функций – functions.php. Если использовать админку, зайдите во вкладку “Внешний вид” и выберите подраздел “Редактор тем”;
- После завершения предыдущего элемента отступите пару строчек и вставьте этот фрагмент:
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) или часть функций перестала работать – откатите изменения. В противном случае, у вас все получилось правильно и можно ничего не трогать.