Как отключить REST API в WordPress

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

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

Зачем отключить REST API в WordPress?

Следует заметить, что в последних версиях “движка” REST API был включен в ядро. Это означает, что он задействуется автоматически при установке свежей копии WordPress, добавляя на каждой странице сайта строку <link rel=’https://api.w.org/’ href=’http://site.ru/wp-json/’ />. В принципе если Вы создаете контент исключительно в админ-панели своего сайта, тот этот функционал Вам никчему. Плюс, как видно, на сайте присутствует ненужная внешняя ссылка. Кроме того, этим функционалом успешно пользуются злоумышленники для проведения DDoS-атак, что может отнимать много ресурсов и как следствие — замедлить работу сайта.

Как отключить REST API в WordPress?

Для решения задачи существует несколько способов. Рассмотрим наиболее популярные из них среди WordPress-сообщества.

Способ 1. Плагин Disable REST API

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

Результат работы плагина довольно легко проверить. Для этого нужно открыть любую страницу своего WordPress-сайта и нажать комбинацию клавиш [Ctrl]+[U]. Если в разделе <head> не будет найдена вышеуказанная строка, то можете быть спокойны — REST API был успешно отключен.

Исходный код страницы сайта

Способ 2. С помощью файла functions.php

Этот способ предусматривает редактирование содержимого файла functions.php Вашей активной WordPress-темы.

Если Вы по каким-либо причинам не хотите редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.

Итак, в указанный файл необходимо будет добавить следующие строки 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' );

Указанный код не только уберет лишнюю ссылку из шапки Вашего WordPress-сайта, но и полностью отключит функционал REST API.

Способ 3. Плагин Clearfy Pro

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

Для этого нужно всего лишь в админке перейти в раздел Clearfy Pro, затем на вкладке Код задействовать опцию Отключить JSON REST API и нажать кнопку Сохранить изменения.

Настройка плагина Clearfy Pro

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: