O WordPress sempre teve recursos embutidos que permitem que você interaja remotamente com o seu site. Às vezes, você precisa acessar seu site e seu computador não vai estar disponível para isso.
Por muito tempo, essa solução era o arquivo xmlrpc. Desde os primórdios do WordPress, foram incorporados recursos que permitiram que o WordPress se comunicasse com outros sistemas. Mas nos últimos anos, xmlrpc se tornou mais um problema do que uma solução.
Neste artigo nós vamos explicar o que é xmlrpc realmente é e porque ele foi criado. Também analisamos os problemas comuns de segurança que ele causa e como corrigi-los em seu próprio site WordPress.
O que é xmlrpc?
O XML-RPC é um recurso do WordPress que permite que dados sejam transmitidos, com HTTP agindo como mecanismo de transporte e XML como mecanismo de codificação. Como o WordPress não é um sistema “fechado” e, ocasionalmente, precisa se comunicar com outros sistemas, esse sistema foi feito para lidar com esse trabalho.
Por exemplo, digamos que você queira postar no seu site a partir do seu dispositivo móvel, já que está sem um computador. Você poderia usar o recurso de acesso remoto ativado por xmlrpc para fazer exatamente isso.
Com o xmlrpc habilitado, você consegue se conectar ao seu site via smartphone, implementando trackbacks e pingbacks de outros sites, e algumas funções associadas ao plugin Jetpack.
Por qual motivo foi criado e como foi usado?
Você já sabe o que é xmlrpc, agora resta saber o motivo da criação. Bom, a implementação do XML-RPC vem desde os primórdios do WordPress, antes mesmo de se tornar WordPress. No início da internet, quando as conexões eram incrivelmente lentas, o processo de escrever e publicar na web era muito mais difícil e demorado. Ao invés de escrever no próprio navegador, a maioria das pessoas escrevia offline, depois copiava e colava o conteúdo na web. Ainda assim, esse processo estava longe de ser ideal.
A solução (na época) era criar um cliente de blog offline, onde você poderia compor seu conteúdo, depois conectar-se ao seu blog para publicá-lo. Essa conexão foi feita através do XML-RPC. Com a estrutura básica do XML-RPC funcionando, os primeiros aplicativos usavam essa mesma conexão para permitir que as pessoas acessassem seus sites do WordPress de outros dispositivos.
XML-RPC hoje
Em 2008, com a versão 2.6 do WordPress, havia uma opção para ativar ou desativar o XML-RPC. No entanto, com o lançamento do aplicativo WordPress para iPhone, o suporte a XML-RPC foi habilitado por padrão e não havia opção para desativar a configuração. Isso permanece até hoje.
No entanto, a funcionalidade desse arquivo diminuiu bastante com o tempo, e o tamanho geral do arquivo diminuiu de 83 kb para 3 kb, de modo que ele não desempenha um papel tão grande quanto costumava
XML-RPC no futuro
Com a nova API do WordPress, podemos esperar que o XML-RPC seja totalmente eliminado. Hoje, essa nova API ainda está em fase de teste e só pode ser ativada com o uso de um plugin. No entanto, você pode esperar que, no futuro, a API seja codificada diretamente no núcleo do WordPress, o que eliminará a necessidade do arquivo xmlrpc . A nova API não é perfeita, mas fornece uma solução mais robusta e segura para o problema que o xmlrpc tenta solucionar.
Por que você deve desativar xmlrpc
Agora que você já sabe o que é xmlrpc e como funciona, precisa entender o principal, que são os problemas que ele traz. Os maiores problemas com o XML-RPC são as preocupações de segurança que surgem. Os problemas não estão diretamente com o XML-RPC, mas sim como o arquivo pode ser usado para ativar um ataque no seu site.
Claro, você pode se proteger com senhas fortes e plugins de segurança do WordPress. Mas o melhor modo de proteção é simplesmente desativá-lo. Existem duas principais fraquezas do XML-RPC que foram exploradas no passado.
O primeiro é usar ataques para entrar no seu site. Um invasor tentará acessar seu site usando xmlrpc e tentando várias combinações de nome de usuário e senha. Eles podem efetivamente usar um único comando para testar centenas de senhas diferentes. Isso permite que eles ignorem as ferramentas de segurança que normalmente detectam e bloqueiam esses tipos de ataque.
O segundo foi derrubar um site realizando um ataque DDoS. Hackers usariam o recurso pingback no WordPress para enviar pingbacks para milhares de sites instantaneamente. Esse recurso em xmlrpc fornece aos hackers um suprimento quase infinito de endereços IP para distribuir um ataque DDoS.
Para verificar se o XML-RPC está sendo executado em seu site, você pode checar através de uma ferramenta chamada XML-RPC Validator. Execute seu site por meio da ferramenta e, se você receber uma mensagem de erro, isso significa que você não tem o XML-RPC ativado.
Se você receber uma mensagem de “sucesso”, indicando que o XML-RPC está sendo executado dentro do seu site, você poderá interromper o xmlrpc com uma das duas abordagens abaixo.
Método 1: Desativando xmlrpc com plugins
Essa maneira de desativar o xmlrpc é muito simples e fácil. Basta entrar no painel de controle do seu site WordPress e ir até a seção Plugins › Adicionar novo. Procure pelo plugin Disable XML-RPC e instale-o.
Ative o plug-in e está tudo pronto. Este plugin vai inserir automaticamente o código necessário para desativar o XML-RPC. No entanto, lembre-se de que alguns plugins existentes podem utilizar partes do XML-RPC, portanto, desabilitá-lo completamente pode fazer com que um conflito de plug-in ou certos elementos do site não funcionem mais.
Se você deseja desativar determinados elementos do XML-RPC, mas ainda permitir que certos plugins e recursos funcionem, use os seguintes plugins:
- Stop XML-RPC Attack: Esse plugin vai interromper todos os ataques de XML-RPC, mas continuará permitindo que plugins como o Jetpack e outras ferramentas e plugins automáticos mantenham o acesso ao arquivo xmlrpc .
- Control XML-RPC Publishing: Isso permite que você mantenha o controle sobre a opção de publicação remota oferecida pelo xmlrpc.
Método 2: Desativando xmlrpc manualmente
Se você não quiser usar um plugin e preferir fazê-lo manualmente, siga esta abordagem. Ele vai interromper todas as solicitações xmlrpc recebidas antes de serem passadas para o WordPress. Abra seu arquivo .htaccess. Você pode ter que ativar o “show hidden files” no gerenciador de arquivos ou no seu cliente FTP para localizar esse arquivo. Dentro do seu arquivo .htaccess, cole o seguinte código:
Conclusão
No geral, o XML-RPC foi uma solução sólida para alguns dos problemas que ocorreram devido à publicação remota em sites WordPress. No entanto, com esse recurso, surgiram algumas falhas de segurança que acabaram sendo muito prejudiciais para alguns proprietários de sites do WordPress.
Para garantir que seu site permaneça seguro, é uma boa ideia desabilitar o xmlrpc por completo. A menos que você precise de algumas das funções necessárias para publicação remota e o plugin do Jetpack. Caso precise, você deve usar os plugins de solução alternativa que permitem esses recursos, enquanto ainda corrige as falhas de segurança.
Com o tempo, podemos esperar que os recursos do XML-RPC se integrem na nova API do WordPress, que manterá o acesso remoto, sem sacrificar a segurança. Mas, enquanto isso, é uma boa ideia proteger-se dos potenciais buracos de segurança do XML-RPC.
Agora que você entendeu o que é xmlrpc, nós perguntamos: Você bloqueou o acesso ao XML-RPC por meio de um plugin ou manualmente? Teve algum problema de segurança dentro do seu site por causa da ativação do xmlrpc ? Por favor, compartilhe sua experiência nos comentários abaixo.