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