Como desativar o XML-RPC para melhorar a segurança do WordPress

Por Leandro Lopes
Como desativar o XML-RPC para melhorar a segurança do WordPress
XML-RPC

A especificação XML-RPC foi desenvolvida para tornar mais fácil para diferentes tipos de computadores, talvez executando diferentes sistemas operacionais ou programas escritos em diferentes idiomas, comunicarem-se uns com os outros pela Web.

Ele permite que os desenvolvedores criem programas que podem interagir com outros programas remotamente sem ter que aprender sobre os protocolos subjacentes, rede ou construção de APIs complexas.

O XML-RPC é ativado por padrão no WordPress desde a versão 3.5 . Pode ser útil para desenvolvedores, mas para o resto de nós não vale a pena mantê-lo ativado, pois pode apresentar vulnerabilidades.

Além disso, a API REST do WordPress substituiu o XML-RPC como a escolha ideal para desenvolvedores do WordPress que desejam permitir que outros aplicativos interajam com ele remotamente.

Neste artigo, explicarei o que é XML-RPC, por que e como você deve desativar o XML-RPC no WordPress e os cenários que podem justificar mantê-lo ativado.

O que é XML-RPC no WordPress?

XML-RPC é uma especificação — basicamente um conjunto de regras — que permite que diferentes tipos de computadores se comuniquem pela Internet, independentemente do sistema operacional em que estão sendo executados ou das linguagens de programação com as quais são compatíveis. Em nosso contexto, ele permite que o WordPress e outros aplicativos se comuniquem.

Você pode ter ouvido falar de XML (eXtensible Markup Language) antes. É o formato de arquivo que o WordPress usa para exportar o conteúdo do seu site.

RPC significa Chamada de procedimento remoto, um protocolo de comunicação que permite que um programa local execute um código específico pertencente a um programa diferente localizado em um computador diferente, como se o código existisse no programa local.

O RPC é usado em vários aplicativos atualmente, de jogos a serviços bancários. Nos primeiros dias do WordPress, o XML-RPC era o que permitia postar conteúdo do aplicativo móvel, mesmo que o aplicativo não estivesse executando o próprio software WordPress.

De qualquer forma, o código subjacente para XML-RPC é armazenado em um arquivo apropriadamente chamado xmlrpc.php , no diretório raiz do seu site.

Se você souber usar o FTP, poderá vê-lo. Ainda está lá, mas não é mais necessário, pois a API REST moderna foi integrada ao WordPress.

A API REST é mais versátil que o XML-RPC, permitindo que o WordPress interaja com muito mais sistemas do que o último permite.

Como desativar o XML-RPC no WordPress

Depois dessa cartilha sobre XML-RPC e aprendendo por que isso torna seu site um pouco menos seguro, você pode perguntar: “Como faço para desativar isso?” E é isso que vou ilustrar nesta seção.

Observe que desativá-lo não é uma questão de simplesmente excluir o arquivo xmlrpc.php . Esse é um arquivo principal do WordPress do qual alguns aplicativos e plug-ins de terceiros ainda dependem para interagir com o WordPress, portanto, excluí-lo corre o risco de interromper sua funcionalidade.

Vou descrever três maneiras de desabilitar o XML-RPC com segurança aqui:

  • Desative o XML-RPC no WordPress usando um plug-in;
  • Bloquear XML-RPC usando o arquivo .htaccess ; e
  • Desative o XML-RPC no WordPress por meio de um filtro.

Vamos dar uma olhada em cada um deles individualmente.

Nota: Antes de continuar, faça backup do seu site . Faremos algumas alterações nos arquivos principais do WordPress. Embora os métodos que descrevo aqui sejam seguros, ainda ajuda ter uma rede de segurança caso algo de ruim aconteça.

Como desabilitar o XML-RPC usando um plugin

Instalar um plug-in é a maneira mais fácil e rápida de desativar o XML-RPC no WordPress. Para esta parte do tutorial, usarei o apropriadamente chamado Disable XML-RPC do desenvolvedor Philip Erb.

  1. Faça login no painel de administração do WordPress.
  2. Vá para Plug- ins > Adicionar novo .
  3. Pesquise por ‘Disable XML-RPC’ (desenvolvido por Philip Erb) e instale-o.
  4. Em seguida, clique em Ativar para ativar o plug-in em seu site e o arquivo xml-rpc.php deve ser desativado

É isso! Assim como o alho pode afastar os vampiros com sua mera existência, o fato de Disable XML-RPC estar ativo em seu site WordPress é suficiente para manter o XML-RPC desativado.

Embora esta opção nuclear seja adequada para a maioria, se você deseja manter o XML-RPC ativo, mas deseja remover certos aspectos dele que são abusados ​​por pessoas mal-intencionadas, o plug-in Desativar XML-RPC Pingback é uma opção melhor.

Ao contrário do plugin que mencionei acima, Disable XML-RPC Pingback elimina três funções comumente invocadas por invasores (você pode encontrar os detalhes em sua página oficial do WordPress). Você ainda terá acesso ao restante do arquivo.

Funciona da mesma forma que Disable XML-RPC: basta instalar e ativar, e pronto.

Como bloquear XML-RPC usando arquivo .htaccess

Se você não gosta da ideia de instalar outro plug-in em seu site WordPress, pode desativar o XML-RPC no WordPress sem um plug-in adicionando algumas linhas de código ao arquivo .htaccess . Se o seu provedor de hospedagem na web usar o servidor da web Nginx para hospedar seu site, você não terá acesso ao arquivo .htaccess . Nesse caso, você pode entrar em contato com a equipe de suporte para desativar o XML-RPC para você.

Para editar o arquivo .htaccess , você pode usar FTP ou cPanel (ou o gerenciador de arquivos em sua conta de hospedagem na web se seu host não tiver cPanel). Usarei o FTP, e o FileZilla em particular, para mostrar como editar o arquivo como independente de host.

  1. Conecte-se ao seu site usando suas credenciais de FTP;
  2. Clique com o botão direito do mouse no arquivo .htaccess e clique em Exibir/Editar para editar o arquivo. Antes de editar o arquivo, no entanto, baixe uma cópia para o seu computador que funcionará como um backup.
  3. Em seguida, adicione as seguintes linhas de código ao topo do arquivo, salve e feche-o:

# Block WordPress xmlrpc.php requests
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx

Este trecho de código bloqueia todas as solicitações XML-RPC no WordPress, exceto os endereços IP mencionados na linha que começa com “allow from”. Se você deseja bloquear solicitações de todos, exclua esta linha completamente.

Como desabilitar o XML-RPC por meio de um filtro personalizado baseado em código

Por fim, você pode desativar o XML-RPC no WordPress manualmente por meio de um filtro. Esse método exige que você escreva seu próprio plug-in – chamado de plug-in específico do site – e adicione a seguinte linha de código a ele:

add_filter( 'xmlrpc_enabled', '__return_false' );

Por que você deve desativar o XML-RPC.php no WordPress

Embora o arquivo xmlrpc.php desatualizado ainda venha com todas as instalações do WordPress, você deve desativá-lo porque adiciona vulnerabilidades de segurança ao seu site.

Agora, você pode se perguntar, se a API REST substituiu o XML-RPC, então por que o WordPress ainda o mantém?

O principal motivo é a compatibilidade com versões anteriores , um dos USPs do WordPress. A Automattic, a empresa por trás do WordPress, deseja que os proprietários de sites que não desejam ou não conseguem atualizar sua versão do WordPress ainda possam fazer tudo o que desejam sem soluços.

Os tipos mais comuns de ataques que exploram o XML-RPC são os seguintes:

  • Ataques DDoS via pingbacks. O pingback é essencialmente um daqueles comentários que aparecem em uma postagem quando outra página da web é vinculada à sua postagem. Se o XML-RPC estiver ativado, um invasor pode lançar um ataque DDoS explorando-o para enviar um grande número de pingbacks ao seu site em um curto período. A API REST muito mais segura torna os pingbacks possíveis hoje em dia.
  • Ataques de força bruta. O XML-RPC envia informações de login pela rede toda vez que envia uma solicitação, o que torna o arquivo xmlrpc.php um alvo principal para hackers.

Quando manter o arquivo XML-RPC.php ativado?

Existem alguns cenários em que é aconselhável manter o XML-RPC ativado. Aqui está uma lista:

  • Você tem um site antigo que não pode atualizar para a versão 4.4 ou superior por algum motivo, portanto não tem acesso à API REST.
  • Você ou alguém que você conhece usa um programa que não pode acessar a API REST para se comunicar com seu site.
  • Integração com alguns aplicativos de terceiros que podem usar apenas XML-RPC.

Conclusão sobre XML-RPC

O XML-RPC provou ser um protocolo útil para permitir que aplicativos e serviços se comuniquem com o WordPress no passado. Mas hoje em dia, a API REST a substituiu para esse propósito.

Embora o WordPress ainda retenha o arquivo xmlrpc.php em todas as instalações para fins de compatibilidade com versões anteriores, não há mais motivo para habilitá-lo, pois ele cria vulnerabilidades de segurança em seu site que podem ser exploradas por pessoas mal-intencionadas, exceto em alguns cenários incomuns.

Para desabilitar o XML-RPC no WordPress, você pode simplesmente instalar e ativar o plugin Disable XML-RPC ou adicionar algumas linhas de código ao arquivo .htaccess .

Embora a desativação do XML-RPC conceda um pequeno aumento na segurança do seu site, não é suficiente para evitar malware, ataques DoS, tentativas de hacking e outras formas de sabotar o seu site.

Seus recursos incluem verificação automática diária de malware, remoção de malware com um clique, firewall integrado de última geração, bloqueio de endereço IP, alertas de segurança em tempo real e muito mais. Além disso, é fácil encontrar rapidamente o recurso que você está procurando devido à sua interface de usuário limpa e minimalista.

Perguntas frequentes

O que é XML-RPC no WordPress?

XML-RPC é um conjunto de regras que permite que diferentes tipos de computadores se comuniquem pela Internet, independentemente do sistema operacional em que estejam sendo executados ou das linguagens de programação com as quais sejam compatíveis. Ele permite que aplicativos de terceiros se conectem remotamente com o WordPress.

Devo desativar o XML-RPC?

Sim, deveria. XML-RPC é um risco de segurança. Muitas vezes, é explorado por invasores que procuram invadir seu site ou lançar um ataque distribuído de negação de serviço (DDoS). A maior parte da funcionalidade do XML-RPC foi substituída pela API REST de qualquer maneira, portanto, desativá-la não afeta tanto sua experiência.

Como posso bloquear XML-RPC no WordPress?

Você pode desabilitar o XML-RPC ao:

  • Usando um plug-in como o plug-in Disable XML-RPC;
  • Adicionando código para bloquear requisições XML-RPC no arquivo .htaccess ;
  • Escrever um plug-in específico do site e adicionar um filtro a ele.

Não posso simplesmente deletar o arquivo xmlrpc.php ?

Não. Existem alguns aplicativos e plug-ins de terceiros que ainda dependem do xmlrpc.php para interagir com o WordPress, portanto, excluí-lo pode interromper sua funcionalidade. Além disso, mesmo se você excluí-lo, ele será recriado após uma atualização do WordPress, portanto, não faz sentido fazer isso.

Subscription Form

Assine nossa Newsletter!

Fique por dentro das últimas atualizações de desempenho do WordPress e da web.
Direto para sua caixa de entrada a cada duas semanas.

Compatilhe este Conteúdo
Seguir
É especialista em WordPress com mais de 12 anos de experiência no CMS, além de experiência em provedores de hospedagem, banco de dados, front-end e back-end em desenvolvimento web. Trabalhou ou teve participação em projetos ligado à empresas: Hopi Hari, iG, entre muitos outros