xmlrpc.php no WordPress: O que é e por que desativá-lo

O WordPress sempre incluiu recursos que permitem a interação remota com o seu site. Por muito tempo, a solução foi um arquivo chamado xmlrpc.php . No entanto, nos últimos anos, o arquivo se tornou mais um problema do que uma solução.
Veremos o que é xmlrpc.php e por que foi criado. Também abordaremos os problemas de segurança mais comuns que ele causa e como corrigi-los no seu site WordPress.
O que é xmlrpc.php no WordPress?
XML-RPC é um recurso do WordPress que permite a transmissão de dados, com o HTTP atuando como mecanismo de transporte e o XML como mecanismo de codificação. Como o WordPress não é um sistema fechado e ocasionalmente precisa se comunicar com outros sistemas, isso foi usado para realizar essa tarefa.
Os principais recursos habilitados pelo xmlrpc.php eram a conexão ao seu site via smartphone, a implementação de trackbacks e pingbacks de outros sites e algumas funções associadas ao plugin Jetpack.
Digamos que você queira publicar no seu site WordPress a partir do seu dispositivo móvel. Você pode usar o recurso de acesso remoto habilitado pelo xmlrpc.php para fazer exatamente isso.
Por que o xmlrpc.php foi criado e como ele foi usado
O uso do XML-RPC remonta aos primeiros dias do WordPress, antes mesmo de ser chamado de WordPress.
Escrever e publicar na internet era muito mais difícil e demorado nos primórdios da internet, quando as conexões eram incrivelmente lentas. Na época, a solução era criar um cliente de blog offline, onde você pudesse compor seu conteúdo antes de se conectar ao seu blog para publicá-lo. Essa conexão era estabelecida usando XML-RPC.
O XML-RPC foi inicialmente desabilitado por padrão até que o WordPress 2.6 adicionou um recurso no painel para habilitá-lo ou desabilitá-lo. Posteriormente, o XML-RPC foi habilitado por padrão no WordPress 3.5 e com a introdução do aplicativo móvel do WordPress. A opção de habilitar ou desabilitar o XML-RPC no painel também foi removida.
XML-RPC hoje em dia
Em 2015, o núcleo do WordPress introduziu uma nova API REST para interação com aplicativos móveis e outras plataformas. Muitos desenvolvedores começaram a usar a nova API REST, que efetivamente substituiu o XML-RPC.
No entanto, o XML-RPC ainda está habilitado no WordPress, e o arquivo xmlrpc.php ainda está localizado no diretório principal do software.
Por que você deve desabilitar xmlrpc.php
O maior problema com o XML-RPC é a preocupação com a segurança. O problema não está no XML-RPC em si, mas sim em como o arquivo pode ser usado para lançar ataques cibernéticos ao seu site.
A primeira é usar ataques de força bruta para obter acesso ao seu site. Um invasor tentará acessar seu site usando xmlrpc.php , utilizando diversas combinações de nome de usuário e senha. Ele pode usar um único comando para testar centenas de senhas diferentes, o que lhe permite contornar ferramentas de segurança que normalmente detectam e bloqueiam ataques de força bruta.
A segunda é tirar sites do ar por meio de um ataque DDoS . Hackers usariam o recurso de pingback do WordPress para enviar pingbacks para milhares de sites instantaneamente. Esse recurso no xmlrpc.php oferece aos hackers um suprimento quase infinito de endereços IP pelos quais podem distribuir um ataque DDoS.
Portanto, além de se proteger com senhas fortes e plugins de segurança do WordPress , é melhor desabilitar o xmlrpc.php .
Para verificar se o XML-RPC está em execução no seu site, execute-o com uma ferramenta chamada Validador XML-RPC . Se receber uma mensagem de erro, significa que o XML-RPC não está habilitado. Mas se receber uma mensagem de sucesso, é altamente recomendável desabilitar o xmlrpc.php .
Como desabilitar xmlrpc.php no WordPress
Vamos analisar as duas maneiras de desabilitar xmlrpc.php no WordPress.
1. Desabilitando xmlrpc.php com um plugin
Com um plugin, desabilitar o XML-RPC no seu site WordPress é simples.
Basta navegar até a seção Plugins → Adicionar Novo no painel do WordPress . Procure por Desativar XML-RPC-API e instale-o. Assim que você ativar o plugin, ele aplicará automaticamente o código necessário para desativar o XML-RPC.
Tenha em mente que outros plugins existentes podem utilizar partes do XML-RPC, portanto desabilitá-lo completamente pode causar um conflito de plugins ou fazer com que certos elementos do seu site não funcionem mais.
2. Desabilitando xmlrpc.php manualmente
Se você preferir excluir xmlrpc.php manualmente , siga este método que interromperá todas as solicitações xmlrpc.php recebidas antes que elas sejam passadas para o WordPress.
Acesse seu arquivo .htaccess através do Gerenciador de Arquivos do seu painel de controle de hospedagem ou de um cliente FTP. Pode ser necessário ativar a opção Mostrar arquivos ocultos para tornar este arquivo visível. Dentro do seu arquivo .htaccess , cole o seguinte código:
Importante! Altere xxx.xxx.xxx.xxx para o endereço IP ao qual deseja permitir acesso a xmlrpc.php ou remova esta linha completamente.
Conclusão
O XML-RPC era uma ferramenta sólida de publicação remota para o seu site WordPress. No entanto, ele apresentava algumas falhas de segurança que acabaram sendo bastante prejudiciais para alguns proprietários de sites WordPress.
Para garantir que seu site permaneça seguro, é altamente recomendável desabilitar completamente o xmlrpc.php usando um plugin ou editando manualmente o arquivo .htaccess .