Seguridad web

XML-RPC: definición

Definición

XML-RPC es un protocolo de llamada a funciones remotas mediante mensajes XML. En WordPress, el archivo xmlrpc.php permite publicar desde una aplicación externa y recibir pingbacks; activo por defecto, también es un objetivo frecuente de las pruebas de contraseñas y del abuso de pingbacks.

XML-RPC, Seguridad web

XML-RPC es en origen un protocolo genérico: un programa envía una petición XML que nombra un método y sus parámetros, el servidor lo ejecuta y responde en XML. En WordPress toma la forma del archivo xmlrpc.php, en la raíz del sitio. Viene de una época en la que las entradas se escribían en un programa de escritorio, y recoge las antiguas API Blogger, metaWeblog y Movable Type además de los métodos wp.* propios de WordPress.

Para qué sirve hoy XML-RPC

  • Publicar a distancia desde una aplicación o una herramienta externa que se autentica con un nombre de usuario y una contraseña.
  • Recibir pingbacks, esas notificaciones que envía otro blog cuando te cita (método pingback.ping).
  • Hacer funcionar ciertos servicios, en especial Jetpack, cuya conexión con WordPress.com pasa por xmlrpc.php.

Desde la llegada de la API REST al núcleo, la mayoría de estas necesidades tienen una solución más moderna. Muchos sitios ya no usan XML-RPC en absoluto, aunque sigue activo por defecto.

Los riesgos

La documentación oficial de WordPress cita xmlrpc.php como un objetivo frecuente de los ataques de fuerza bruta: cada llamada de publicación acepta un usuario y una contraseña, sin página que cargar ni cookie. En octubre de 2015, Sucuri describió ataques que usaban el método system.multicall para probar cientos de contraseñas en una sola petición HTTP. WordPress 4.4 limitó esta amplificación: tras un fallo de autenticación, las llamadas siguientes de la misma petición también fallan. Aun así, el método sigue siendo una fuente de carga y un motivo frecuente de bloqueo en los cortafuegos.

Los pingbacks plantean otro problema. Para verificar un pingback, WordPress va a leer la página que dice citarlo, en una dirección facilitada por el remitente. Así, miles de sitios pueden usarse como relé de un ataque DDoS contra una misma víctima sin haber sido hackeados.

Tabla en tres columnas: usos legítimos de xmlrpc.php (publicación desde una aplicación, Jetpack, pingbacks, antiguas herramientas de gestión), abusos habituales (pruebas de contraseñas, system.multicall, pingbacks desviados, carga del servidor) y defensas (bloqueo del archivo, retirada de pingback.ping, contraseñas de aplicación y 2FA, regla de servidor o CDN)
xmlrpc.php todavía tiene algunos usos legítimos, pero sobre todo atrae a los bots.

En WordPress: cerrar o limitar XML-RPC

Un punto que suele malinterpretarse: el filtro xmlrpc_enabled no desactiva XML-RPC. Su documentación precisa que solo corta los métodos que exigen autenticación, no los pingbacks. Según tu uso:

  • Ningún uso: bloquea xmlrpc.php en el servidor o en el CDN (bloque <Files "xmlrpc.php"> en Apache, location = /xmlrpc.php { deny all; } en Nginx). Es el único método que evita también la carga de PHP.
  • Jetpack: el mismo bloqueo, con una excepción para las direcciones IP que publica Jetpack.
  • Publicación a distancia: conserva el archivo, retira pingback.ping con el filtro xmlrpc_methods y usa contraseñas de aplicación, que se pueden revocar una a una.

Después del cambio, abre /xmlrpc.php en una ventana privada: la respuesta debe ser 403 o 404. Nuestro artículo XML-RPC en WordPress: riesgos, usos y desactivación compara los métodos en detalle. Si mantienes XML-RPC, la autenticación de dos factores en las cuentas que publican reduce el valor de las contraseñas robadas.

Vídeo: «xmlrpc.php en WordPress: qué es, para qué sirve y cómo bloquearlo (GUÍA 2026)» (Rogama SEO)

El módulo de refuerzo de seguridad de WP Masquerade trata XML-RPC en su versión gratuita: un primer nivel retira los métodos de pingback y el siguiente hace que xmlrpc.php responda con un error 404, avisando de que Jetpack y algunas aplicaciones dejarán de funcionar. Como el bloqueo lo hace WordPress, PHP sigue trabajando: una regla de servidor o de CDN elimina también esa carga. Las peticiones a la dirección cerrada se cuentan como una trampa para bots.

Para saber más

  • Artículo Cómo desactivar XML-RPC en WordPress: riesgos, usos y método correcto
  • Página Refuerzo de seguridad de WordPress

Fuentes

  1. WordPress Developer Resources: filtre xmlrpc_enabled (enlace externo, se abre en una pestaña nueva)
  2. WordPress Developer Resources: Brute Force Attacks (enlace externo, se abre en una pestaña nueva)
  3. Sucuri: Brute Force Amplification Attacks Against WordPress XMLRPC (octobre 2015) (enlace externo, se abre en una pestaña nueva)
  4. WordPress Developer Resources: XML-RPC WordPress API (enlace externo, se abre en una pestaña nueva)

Todas las definiciones

Seguridad de WordPress, sin ruido

Un correo cuando importa: nuevos ataques observados, actualizaciones de la extensión y guías prácticas. Sin spam, baja con un clic.

Empieza gratis y pasa a Pro cuando estés listo

La versión gratuita ya oculta WordPress y cambia la dirección de la página de acceso. Pro añade alias, verificación en dos pasos y supervisión.