2016-12-16 3 views
9

Я рассматриваю возможность улучшения безопасности своего веб-сайта Wordpress, и при этом API-интерфейс REST API включен по умолчанию (с WP 4.4, если я не ошибаюсь).Безопасное отключение WP REST API

Что такое безопасный способ его отключения?

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

Одним из возможных подходов было бы использовать правила перезаписи, но, на удивление, я не нашел никаких «официальных» инструкций по этому поводу.

Любая помощь или рекомендация очень ценится :)

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

Update 2: Вот официальное мнение Wordpress: https://developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked-questions/#can-i-disable-the-rest-api

В соответствии с этим, команда Wordpress хочет будущие функции WP зависит от нового REST API. Это означает, что нет гарантированный сейф способ отключить API REST.

Будем надеяться, что есть достаточно экспертов по безопасности, заботящихся о безопасности WP.

ответ

8

Отключение API REST в конце концов неплохая идея. На самом деле он открыл huge hole in all websites!

В WordPress 4.4 there was a way

Здесь I've found a possible solution with .htaccess но должны быть тщательно протестированы в сочетании с тем, что еще находится в файле .htaccess (правила, например, довольно-URL добавил сам WordPress):

# WP REST API BLOCK JSON REQUESTS 
# Block/Forbid Requests to: /wp-json/wp/ 
# WP REST API REQUEST METHODS: GET, POST, PUT, PATCH, DELETE 
RewriteCond %{REQUEST_METHOD} ^(GET|POST|PUT|PATCH|DELETE) [NC] 
RewriteCond %{REQUEST_URI} ^.*wp-json/wp/ [NC] 
RewriteRule ^(.*)$ - [F] 

Очень резкий метод, также должен иметь веб-страницу 404.html в вашем корне, а затем добавить эту строку:

# WP REST API BLOCK JSON REQUESTS 
# Redirect to a 404.html (you may want to add a 404 header!) 
RewriteRule ^wp-json.*$ 404.html 

Обратите внимание, что, если вы не используете статические страницы, т.е. не связан с WordPress функций, если вы хотите вернуть ошибку 404 с соответствующей страницы ошибок, это полная отдельная тема, с a lot of issues when Wordpress is involved

+0

Спасибо за ответ! Было бы очень приятно, если бы вы могли проверить его, прежде чем я приму свой ответ. Вопрос: почему вы хотите обмануть ботов? И какие боты, по вашему мнению, собираются сканировать '/ wp-json'? –

+0

Я имею в виду, я проверил второй вариант, и он работает над моей настройкой. Первое не делает, но я думаю, что есть некоторая проблема с другими правилами .htaccess. У меня есть – Kuzeko

+0

Злоумышленники, которые могут автоматически проверять * ошибки * и * дыры * в вашей установке WP. – Kuzeko

Смежные вопросы