Каков наилучший способ удалить файл xmlrpc.php из WordPress, когда он вам не нужен?
источник
Каков наилучший способ удалить файл xmlrpc.php из WordPress, когда он вам не нужен?
Начиная с WordPress 3.5 эта опция (XML-RPC
) включена по умолчанию, и возможность отключить ее из WordPress dashboard
исчезла.
Добавьте этот фрагмент кода для использования в functions.php
:
// Disable use XML-RPC
add_filter( 'xmlrpc_enabled', '__return_false' );
// Disable X-Pingback to header
add_filter( 'wp_headers', 'disable_x_pingback' );
function disable_x_pingback( $headers ) {
unset( $headers['X-Pingback'] );
return $headers;
}
Хотя он делает то, что говорит, он может стать интенсивным, когда сайт подвергается атаке, попав в него.
Вы можете лучше использовать следующий фрагмент кода в вашем .htaccess
файле.
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>
Или используйте это, чтобы отключить доступ к xmlrpc.php
файлу из блока сервера NGINX.
# nginx block xmlrpc.php requests
location /xmlrpc.php {
deny all;
}
Имейте в виду, что отключение также может повлиять на вход через мобильный телефон. Если я прав, мобильное приложение WordPress нуждается в этом.
См. Кодекс для получения дополнительной информации об использованииXML-RPC
.
- Пожалуйста, всегда делайте резервную копию файла (ов) перед редактированием / добавлением.
@Prosti, -Вы абсолютно правы насчет вариантов, которые RESTful API
предложат для WordPress!
Я забыл упомянуть об этом. Он уже должен был быть интегрирован в ядро ( WordPress версии 4.1 ), что в то время было невозможно. Но, как кажется, будет основным в WordPress 4.5.
Альтернативой на данный момент является этот плагин: WordPress REST API (версия 2).
Вы можете использовать его до тех пор, пока он не Restful API
станет основным для WordPress.
Ориентировочная дата выпуска WordPress 4.5. (12 апреля 2016 г. (+ 3 Вт))
Для тех, кто интересуется
RESTful
, на Stackoverflow очень хорошее сообщество вики.
X-Pingback
заголовок для одного поста / страницы. Нам нужно использовать другой фильтр , чтобы удалить его полностью:add_filter('pings_open', '__return_false', PHP_INT_MAX);
.functions.php
потеряет весь эффект при смене темы.function.php
только для дизайнерских целей, используйте плагин!=
в первой строке conf-кода nginx отсутствует знак равенства ( ). Это сработало для меня:location = /xmlrpc.php {
Если у вас есть возможность заблокировать его через конфигурацию вашего веб-сервера, предложения @Charles хороши.
Если вы можете отключить его только с помощью php,
xmlrpc_enabled
фильтр не правильный путь. Как описано здесь: https://developer.wordpress.org/reference/hooks/xmlrpc_enabled/ он отключает только методы xml rpc, требующие аутентификации.Вместо этого используйте
xmlrpc_methods
фильтр, чтобы отключить все методы:Вы можете проверить, работает ли он, отправив запрос POST в xmlrpc.php со следующим содержимым:
Если фильтр работает, должно быть только 3 метода:
Вы можете быстро проверить это с помощью curl:
источник
Мы используем файл htaccess, чтобы защитить его от хакеров.
источник
Лучше всего отключить
xmlrpc.php
функции с помощью плагина, а не удалять или отключать сам файл. Сам файл будет заменен при обновлении ядра WordPress, а плагин будет держать его отключенным после обновления ядра и при смене тем.Видеть Https://wordpress.org/plugins/search.php?q=disable+xml-rpc для различных плагинов. Все они имеют незначительные различия.
Эти плагины выполняют ту же функцию, что и функция, добавляемая в
functions.php
файл темы или добавляющаяorder,allow deny
правило в .htaccess (как указано в других ответах), с той разницей, что плагин или функция отключает вызовыxmlrpc.php
через PHP, и правило в .htaccess работает используя mod_rewrite в веб-сервере (то есть Apache или Nginx). Нет заметного различия в производительности между использованием PHP и mod_rewrite на современном сервере.источник
Для крайнего меньшинства, которое размещает WordPress в IIS, вы можете использовать модуль IIS URL Rewrite, чтобы выполнить аналогичные htaccess-подобные ограничения. В приведенном ниже примере предполагается, что в заголовке X-Forwarded-For указан истинный IP-адрес клиента, известным IP-адресом белого списка является 55.55.555.555, и вы хотите ответить HTTP 404 на IP-адреса, не входящие в белый список.
источник
В первом случае вы можете поместить код
add_filter('xmlrpc_enabled', '__return_false');
в файлfunctions.php
или плагин для конкретного сайта. Ясно, что лучше указывать его в зависимости от сайта, чем редактировать файлfunctions.php
.и другие способы устранения xmlrpc
источник
Я недавно установил Wordfence, который, начиная с версии 6.3.12, может блокировать прямой доступ к любому местоположению. Помещение /xmlrpc.php на страницу «Параметры» в списке IP-адресов с запрещенным доступом «Немедленно блокировать IP-адреса, которые обращаются к этим URL-адресам» теперь показывает, что одна попытка блокируется каждые 15 минут.
Это также имеет то преимущество, что может блокировать URL-адрес, чтобы скрыться от тех надоедливых ботов, которые снова и снова возвращаются с другим IP-адресом.
Я не знаю, позволяет ли он использовать xmlrpc.php в приложениях для допустимых операций.
У меня были некоторые проблемы с ним, приводившие к ошибкам 504 Timeout и 502 Bad Gateway на сервере, но, похоже, они устранились.
Результат впечатлил до сих пор, и он создал ценный профиль очистки после того, как сайт был взломан до установки Wordfence и несмотря на наличие последней версии WordPress и плагинов.
Wordfence https://www.wordfence.com/
источник
/xmlrpc.php
к правилу безопасности, запрещающему доступ к IP-адресам, может блокировать законный трафик. Если сайт с пингбэками включил ссылки на ваш сайт, этот сайт отправит запрос на этот URL и сразу же заблокируется ... похоже, это может вызвать проблемы.я использую для Nginx этот маленький код, и это работает на 100%
источник