Como desativar o XML-RPC no WordPress?

Publicados: 2022-09-19

Você pesquisa sobre o arquivo xmlrpc.php e como pode desativá-lo no WordPress? Este artigo explicará o que é xmlrpc.php e como você pode desativá-lo.

A comunicação com o WordPress a partir de aplicativos fora do ambiente WordPress por meio da especificação XML-RPC é possível padronizando um método de comunicação entre sistemas.

Desde a sua origem, esta especificação tem sido de grande valor para a comunidade WordPress. Sem ele, o WordPress teria sido isolado do resto da Internet.

No entanto, xmlrpc.php também tem algumas desvantagens. WP REST API tornou-se um componente vital do WordPress desde que as vulnerabilidades do arquivo xmlrpc.php foram descobertas. Isso melhora muito a forma como o WordPress interage com outros programas de software.

O objetivo deste artigo é explicar o que é xmlrpc.php, por que isso deve ser desativado e como você pode desativá-lo.

Também sugerimos que você verifique nosso artigo sobre os melhores plugins de segurança do WordPress.

O que é o arquivo xmlrpc.php?

O objetivo desta seção é responder à pergunta O que é XML-RPC PHP? A especificação XML-RPC pode ser usada para comunicação entre o WordPress e outros sistemas.

Utilizando HTTP como protocolo de transporte e XML como protocolo de codificação, o XML-RPC pôde padronizar os protocolos utilizados nestas comunicações.

O WordPress foi bifurcado em 2003 a partir do software de blogs b2, que usava XML-RPC como interface. Um arquivo chamado xmlrpc.php reside no diretório raiz do sistema e contém o código para esse recurso. Este arquivo ainda está disponível, embora o XML-RPC seja principalmente obsoleto.

Era a configuração padrão nas primeiras versões do WordPress para desabilitar o XML-RPC. Desde a versão 3.5, ele foi habilitado por padrão para oferecer suporte à comunicação entre seu aplicativo móvel WordPress e sua instalação do WordPress.

Antes da versão 3.5 do WordPress, o aplicativo móvel WordPress só podia postar conteúdo se seu site estivesse configurado com XML-RPC. Isso foi causado pelo fato de o aplicativo não estar executando o WordPress; em vez disso, ele se comunicou com seu site WordPress usando xmlrpc.php.

Além disso, o XML-RPC é usado para comunicação entre o WordPress e outras plataformas de blogs e entre o WordPress e o aplicativo móvel do WordPress.

XML-RPC pode ser usado para pingbacks e trackbacks. Ele também serviu como back-end para o plug-in Jetpack, que possibilitou que sites WordPress auto-hospedados se tornassem membros do WordPress.com.

Como a API REST agora foi integrada ao núcleo do WordPress, não usamos mais o arquivo xmlrpc.php. Em vez de usar esse arquivo, agora você pode se comunicar com o aplicativo móvel do WordPress, clientes de desktop, plug-in Jetpack e outros sistemas e serviços usando a API REST.

Também é possível integrar a API REST com uma gama maior de sistemas, e sua flexibilidade é maior que a do xmlrpc.php. Como o XML-RPC foi substituído por APIs REST, você deve desabilitar o xmlrpc.php em seu site para evitar problemas.

Por que você deve desabilitar o XML-RPC?

Você deve estar ciente de que o arquivo xmlrpc.php pode expor a vulnerabilidade habilitada para XML-RPC do seu site WordPress para hackers, portanto, você deve desativá-lo.

O uso de XML-RPC não é mais necessário para comunicações fora do WordPress. Se você deseja manter seu site o mais seguro possível, você deve desativá-lo.

É por esse motivo que o WordPress sempre será compatível com versões anteriores. Você deve atualizar constantemente os plugins e temas do WordPress associados aos sites do WordPress se você for responsável por eles.

Se o XML-RPC estiver ativado em seu site, um hacker poderá usá-lo como uma ferramenta para lançar um ataque DDoS em seu site. Eles podem usar o módulo xmlrpc.php para gerar muitos pingbacks para seu site, o que pode sobrecarregar o servidor e fazer com que o site fique inativo.

Além disso, o xmlrpc.php também envia informações de autenticação com cada solicitação, para que hackers possam interceptar essas informações e usá-las para tentar acessar seu site. Esse ataque de força bruta pode permitir que hackers executem códigos maliciosos, excluam códigos e até danifiquem seu banco de dados.

Como verificar se o XML-RPC está ativado?

Clique no link a seguir para acessar o site: WordPress XML-RPC Validation Service.

Depois de inserir seu nome de domínio, clique no botão Verificar.

Verifique se o xmlrpc está ativado no WordPress

Se o teste foi bem-sucedido, agora o XML-RPC estará habilitado, que deve ser desligado imediatamente.

Desabilitar XMLRPC usando plugins do WordPress

Por vários motivos, os proprietários do site podem querer desabilitar a funcionalidade XMLRPC. Você pode usar vários plugins, como Disable XML-RPC, para fazer isso.

Desabilitar XMLRPC usando o plug-in Desabilitar XML-RPC

Explicamos como usar o plug-in Desativar XML-RPC para desativar a funcionalidade XMLRPC. Por favor, faça login no seu painel de administração do WordPress.

1. Clique em Plugins e depois em Adicionar Novo.

2. Digite “Desativar XML-RPC” na caixa de pesquisa. Instale o plug-in Desativar XML-RPC depois disso.

Instalar novo plugin no WordPress

3. Ative o plug-in e você estará pronto para começar. Em seguida, o XML-RPC é desabilitado.

Instalar o plug-in Desativar CML-RPC

Neste plugin, você pode encontrar um validador XML-RPC que pode ser usado para verificar se o XML-RPC foi desabilitado. Caso o XML-RPC tenha sido desabilitado, uma mensagem de falha aparecerá. Caso contrário, você pode desativá-lo com este plugin.

Configurar ativação de API XML-RPC e REST com um plug-in

O plugin REST XML-RPC Data Checker permite que você configure a API REST e o xmlrpc.php em seu site de maneira mais refinada.

Depois de instalar e ativar o plug-in, clique na guia XML-RPC depois de clicar na guia REST XML-RPC Data Checker nas configurações.

Através do plugin, você pode especificar exatamente quais recursos do xmlrpc.php estão habilitados em seu site. Também é possível desativá-lo completamente. Há também uma guia no plug-in que permite controlar a API REST, se você optar por fazê-lo.

Desabilitar XMLRPC sem um plugin

Se você preferir não adicionar outro plugin ao seu site, você pode desabilitar o xmlrpc.php usando um filtro ou seu arquivo .htaccess. Vamos considerar as duas opções juntos.

Desabilitar xmlrpc.php por meio de um filtro

Usando o filtro xmlrpc_enabled, é muito fácil desabilitar o xmlrpc.php. Você deve adicionar esta função e ativá-la em seu site:

 add_filter( 'xmlrpc_enabled', '__return_false' );

A função pode ser adicionada ao arquivo de funções do tema. Um arquivo .htaccess também pode ser editado usando cPanel ou FTP, dependendo se você está conectado a um provedor de hospedagem usando Apache.

A função __return_false do WordPress retorna a condição booleana falsa. Este filtro bloqueia apenas as operações que requerem um usuário logado.

Deve ser cancelado de todos os métodos para desabilitar todas as operações do servidor XMLRPC. Para conseguir isso, você precisa se conectar ao filtro xmlrpc_methods.

 add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }

O arquivo xmlrpc.php cria um objeto da classe wp_xmlrpc_server quando uma solicitação é feita. Dentro da pasta wp-includes há um arquivo de classe contendo uma propriedade chamada métodos.

A propriedade de métodos inclui uma matriz de nomes de funções que podem ser acessadas por meio de solicitações XML-RPC.

A função é retornada com uma mensagem de erro quando não está incluída neste array. Assim, se você esvaziar o array, você tem certeza de que não poderá usar nenhuma função.

Desabilitar XML-RPC usando .htaccess

Desabilitar o XML-RPC usando .htaccess inclui algumas etapas simples. É assim que você pode desabilitar xmlrpc.php .htaccess:

  • Você pode usar o FTP ou o Gerenciador de Arquivos para navegar até o diretório raiz do seu site.
  • Você deve abrir o arquivo .htaccess.
  • Você precisará adicionar o seguinte código ao seu arquivo .htaccess:
 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>

xxx.xxx.xxx.xxx pode ser substituído pelo endereço IP ao qual você deseja conceder acesso a xmlrpc.php. Se você deseja remover completamente o xmlrpc.php do WordPress, você pode remover esta linha.

Desabilitar XMLRPC no Apache/Nginx

Desabilitar XMLRPC no Apache/Nginx também pode ser um processo simples. O código a seguir deve ser adicionado ao arquivo de configuração do Apache para desabilitar o xmlrpc.php:

 < VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >

Usando o seguinte código no arquivo de configuração do Nginx, você pode desabilitar o xmlrpc.php:

 server { ----------- location /xmlrpc.php { deny all; } }

Como pesquisar e encontrar ataques XML-RPC em diferentes distribuições Linux?

Se você estiver procurando por ataques XML-RPC em diferentes distribuições Linux, poderá usar os seguintes comandos para interromper ataques xmlrpc.php:

Um servidor CentOS com Apache instalado:
 # grep xmlrpc /var/logs/httpd/access.log
Com Apache no Ubuntu:
 # grep xmlrpc /var/logs/apache2/access.log
Para servidores baseados em Nginx:
 # grep xmlrpc /var/logs/nginx/access.log
Para servidores baseados em cPanel:
 # grep xmlrpc /home/username/logs/access.log

Você receberia a seguinte saída se os comandos anteriores fossem executados em um site WordPress que está sob ataque:

 POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)

Quando manter o arquivo XML-RPC.php ativado

Existem algumas situações em que seria vantajoso habilitar o XML-RPC, e estas são algumas delas:

  • Se a API REST estiver indisponível quando você tiver um site antigo que não pode ser atualizado para a versão 4.4 ou superior por qualquer motivo.
  • Um programa não pode acessar a API REST no site que você está usando para se comunicar com ele.
  • Para integrar alguns aplicativos de terceiros que exigem que o XML-RPC funcione.

Deve-se notar, no entanto, que nenhuma das críticas acima são razões suficientes para continuar a usar XML-RPC e exploração xmlrpc.php.

A única razão pela qual o WordPress o possui é que ele é compatível com versões anteriores; como resultado, você só vai querer usá-lo se estiver usando uma versão desatualizada do WordPress.

Para aqueles que desejam manter seu site atualizado e suportar a versão mais recente do software, o xmlrpc.php deve ser desabilitado.

Testando a funcionalidade XML-RPC no WordPress

Além disso, você pode usar a opção de teste do WordPress para verificar se seu site foi desativado com sucesso para receber solicitações XML-RPC.

Para isso, você pode baixar o WordPress Mobile App para o seu telefone. Existem versões para Android e iPhone deste aplicativo disponíveis. Depois de instalar o aplicativo no seu dispositivo, toque em Digite o endereço do site existente para começar a usá-lo.

Você terminou se vir a mensagem de erro informando que os serviços XML-RPC estão desabilitados neste site. Esta é uma mensagem proibida do WordPress xmlrpc.php 403.

Conclusão

A especificação XML-RPC foi desenvolvida antes da criação do WordPress para permitir a comunicação com aplicativos e sistemas externos. Existem várias falhas de segurança nesta especificação, que podem tornar seu site vulnerável a ataques.

A API REST permite que seu site se comunique com outros programas, possibilitando desabilitar o xmlrpc.php sem preocupação. Se você deseja aumentar a segurança do seu site, siga as etapas mencionadas para fazer isso.