Saiba tudo sobre o WordPress XML-RPC e tenha um site WordPress mais seguro
O WordPress XML-RPC é uma especificação que visa padronizar as comunicações entre diferentes sistemas. Ele usa HTTP como mecanismo de transporte e XML como mecanismo de codificação que permite que uma ampla gama de dados seja transmitida.
Para nós, WordPress, a parte mais importante disso é “sistemas diferentes”. O WordPress precisa se comunicar com outros sistemas de tempos em tempos e até recentemente o XML-RPC era o melhor candidato para o trabalho. Ao se comunicar com outros sistemas de blogs, como o Blogger ou o Movable Type, ou ao postar de clientes de desktop ou aplicativos móveis oficiais, o XML-RPC era, e ainda existe, para ajudar.
Por que todo o tempo passado? Muito em breve, a nova API do WP tomará o seu lugar, que é uma API REST ful, trazendo mais flexibilidade, melhor segurança e felicidade a toda a mesa. No entanto, como o WordPress tem tudo a ver com retrocompatibilidade, o XML-RPC estará disponível por um longo período, portanto, podemos conhecê-lo!
A história do WordPress XML-RPC
Você sabe quando o WordPress implementou pela primeira vez o XML-RPC? Versão 3.4, 2.1, talvez já em 1.2? Não, pergunta complicada, era parte do software b2 original de blogs, do qual o WordPress foi bifurcado. Isso é quando a versão zipada tinha 268kb e havia mais arquivos e pastas começando com “b2” do que “wp”.
A lógica por trás de todo o sistema estava contida no arquivo xmlrpc.php no diretório raiz. Continha funções como wp_insert_post (), wp_delete_post () e assim por diante.
O WordPress XML-RPC estava desativado por padrão originalmente, você tinha que ir para Configurações> Escrita> Publicação Remota para ativá-lo. Desde a versão 3.5, a funcionalidade está ativada por padrão.
WordPress XML-RPC Hoje
Depois de passar por uma série de mudanças, o tamanho deste arquivo diminui de 83kb para apenas 3kb, a maior parte da funcionalidade está agora escondida em uma pequena classe. Essa classe é chamada wp_xmlrpc_server e pode ser encontrada em wp-includes / class-wp-xmlrpc-server.php e contém 48 funções WordPress, 7 funções Blogger, 6 funções MetaWeblog, 8 funções MovableType e 4 funções para pingbacks.
Como eu disse anteriormente, isso não está muito bem documentado, então você precisa abrir esse arquivo e dar uma olhada na aula. Há também um artigo do Tuts + sobre codificação com XML-RPC em mente, mas basicamente é isso.
WordPress XML-RPC no Futuro
O advento da nova API do WP verá a queda do XML-RPC. A API do WordPress já pode ser usada, mas requer uma ativação de plug-in e ainda está em fase de teste. Não muito longe no futuro, será uma parte do código principal do WordPress, que é quando ele começará a invadir o território XML-RPC.
No momento, existem alguns recursos que a API do WordPress ainda está faltando, embora seja muito mais poderosa de outras maneiras que o XML-RPC. Dê uma olhada na excelente comparação no site da API do WP.
O problema com XML-RPC
Os dois maiores ativos da API são sua extensibilidade e segurança. O XML-RPC autentica com autenticação básica. Ele envia o nome de usuário e senha com cada solicitação, o que é um grande não-não nos círculos de segurança.
A API do WordPress pode usar o Oauth que nunca envia seu nome de usuário e senha, ele usa tokens para autenticação, tornando-o muito mais seguro.
Além disso, as funções e os métodos não precisam ser codificados para a implementação específica. Você pode (já) adicionar seus próprios pontos de extremidade para criar o que quiser, não está restrito a apenas adicionar postagens, gerenciar taxonomias e usuários, etc.
Embora você possa estender o XML-RPC também, o processo não é documentado bem e não é tão poderoso quanto sua contraparte da API.
JSON vs XML é outro argumento em que o XML-RPC pode ficar aquém. A API usa o JSON para enviar e receber dados, o que é favorecido pelos desenvolvedores devido à sua facilidade de uso nos idiomas do servidor e do lado do cliente. XML pode ficar um pouco complicado, exigindo classes PHP para ler corretamente.
No entanto, nos últimos anos, o XML-RPC se tornou um alvo cada vez maior para ataques de força bruta. Isso não tem nada a ver com qualquer vulnerabilidade de segurança e tudo a ver com outro caminho para o WordPress. Ao usar o XML-RPC para fazer chamadas, você precisa fornecer um nome de usuário e senha, e o sistema confirmará quando você acertar um par válido.
Verificando WordPress – XML-RPC seu seu site
Não tenho certeza se o XML-RPC está sendo executado no seu site? Danilo Ercoli, da equipe Automattic, escreveu uma pequena ferramenta chamada XML-RPC Validator. Você pode executar o seu site WordPress através dele para ver se ele tem o XML-RPC ativado. Se isso não acontecer, você verá uma mensagem de falha.
Como Para o ataque de XML-RPC no WordPress
Nós gravamos um vídeo explicando um pouco sobre o WordPress XML-RPC e como bloquear ataques no WordPress.
Para saber outras técnicas avançadas para proteger o seu site WordPress, conheça o nosso Curso de Segurança WordPress. Lá além dessas você também aprenderá outras técnicas que especialistas em Segurança Recomendam.
Clique aqui para acessar o nosso curso de Segurança WordPress
Olá,
o que você achou deste conteúdo? Conte nos comentários.
Aqui é a Fabiana Paula, eu gostei muito do seu artigo seu conteúdo vem me ajudando bastante, muito obrigada.
Flágio, melhor consultor de WP do Brasil. Já me ajudou e ainda continua me ajudando bastante. #FIOCRUZ