ВОПРОС
Недавно я задумался над тем, чтобы повысить уровень безопасности своего сайта. И начав работать над этим, я заметил, что wp rest API уже включен по умолчанию. Есть ли какой-нибудь безопасный способ его отключения?
Если что, то “безопасный” — это значит, что после его отключения не будет никаких неожиданностей, в виде нарушения других функций и каких-либо сбоев. Вообще, я сначала думал, что можно попробовать перезаписать .htaccess. Но, как бы это не было удивительно, официальных инструкций по этой теме я не нашел. Поэтому я буду рад любой помощи.
На всякий случай скажу о том, что мне не нужно. Не стоит предлагать мне такие способы, которые подразумевают использование различных плагинов. Да, они эффективные и работают отлично. Но они замедляют работу веб-сайта, чего я избегаю всеми силами. Также прошу обратить внимание на то, что само руководство WordPress хочет сделать систему зависимой от rest API. Поэтому нет никаких гарантий, что после его отключения не возникнет никаких проблем.
Полезно : Как добавить страницу PHP в WordPress?
ОТВЕТ
Я прочитал твой вопрос и обратил внимание на второй пункт Вообще, существуют официальные рекомендации по твоей теме. Я немного покопался в них и нашел то, что ты искал. В целом, здесь работы на пять минут. Все, что ты должен сделать — это только вставить фрагмент кода в файл functions.php. Тогда использовать API смогут только зарегистрированные пользователи. Вот тот код, который нужно использовать:
add_filter( ‘rest_authentication_errors’, function( $result ) {
if ( ! empty( $result ) ) {
return $result;
}
if ( ! is_user_logged_in() ) {
return new WP_Error( ‘rest_not_logged_in’, ‘You are not currently logged in.’, array( ‘status’ => 401 ) );
}
return $result;
});