15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar
01.11.2024

¿Qué es xmlrpc.php en WordPress y cómo deshabilitarlo (Guía completa 2024)

WordPress impulsa más del 43% de todos los sitios web en Internet — y con esa dominancia viene una superficie de ataque significativa. Uno de los puntos de entrada más frecuentemente explotados es un archivo llamado xmlrpc.php. Ya seas un desarrollador experimentado o un propietario de sitio que gestiona tu primera instalación de WordPress, entender qué hace este archivo, por qué es peligroso y cómo deshabilitarlo es crítico para mantener tu sitio seguro.

Esta guía cubre todo lo que necesitas saber sobre xmlrpc.php: su propósito, las amenazas del mundo real que introduce, y tres métodos comprobados para deshabilitarlo — sin necesidad de un título técnico.

¿Qué es xmlrpc.php en WordPress?

xmlrpc.php es un archivo central de WordPress que implementa el protocolo XML-RPC — un sistema de llamada a procedimiento remoto (RPC) que utiliza XML para codificar llamadas e HTTP como mecanismo de transporte. En palabras simples, permite que aplicaciones y servicios externos se comuniquen con tu sitio WordPress sin usar la interfaz estándar del navegador web.

Introducido mucho antes de que existiera la REST API de WordPress, xmlrpc.php fue el puente principal entre WordPress y el mundo exterior. Habilitaba:

  • Publicación remota de contenido — Clientes de blog como Windows Live Writer o MarsEdit podían publicar artículos directamente en tu sitio.
  • Gestión de aplicaciones móviles — La aplicación móvil oficial de WordPress históricamente se basaba en XML-RPC para gestionar posts, páginas y comentarios.
  • Trackbacks y pingbacks — El protocolo maneja notificaciones entre sitios, alertando a otros blogs cuando enlazas a su contenido.
  • Integraciones de terceros — Servicios como IFTTT, Zapier (en configuraciones antiguas) y varios plugins utilizaban XML-RPC para interactuar con WordPress programáticamente.

Aunque estas características fueron genuinamente útiles a principios de los años 2010, WordPress ha introducido desde entonces la REST API, que proporciona una forma más segura, moderna y flexible de lograr los mismos resultados. Como resultado, xmlrpc.php es ahora en gran medida obsoleto — pero permanece activo por defecto en cada instalación de WordPress.

¿Por qué xmlrpc.php es un riesgo de seguridad?

El problema con xmlrpc.php no es el protocolo en sí — es que el archivo permanece habilitado incluso cuando no lo usas, creando un vector de ataque innecesario. Los investigadores de seguridad y proveedores de hosting lo marcan consistentemente como una de las principales vulnerabilidades de WordPress. Aquí está el por qué:

1. Ataques de amplificación de fuerza bruta

Esta es la amenaza más peligrosa y ampliamente explotada. Los ataques de fuerza bruta estándar contra la página de inicio de sesión de WordPress (wp-login.php) se limitan a un intento de credencial por solicitud HTTP. XML-RPC cambia esto dramáticamente.

El método system.multicall en XML-RPC permite a un atacante agrupar cientos o incluso miles de combinaciones de nombre de usuario/contraseña en una única solicitud HTTP. Esto significa:

  • Los plugins tradicionales de limitación de velocidad e intentos de inicio de sesión se eluden.
  • Los atacantes pueden probar listas de credenciales enormes con ancho de banda mínimo.
  • Los registros del servidor muestran muchas menos solicitudes, lo que hace que la detección sea más difícil.

Un único botnet puede comprometer un sitio WordPress con una contraseña débil en minutos usando esta técnica.

2. Amplificación DDoS a través de Pingbacks

Los atacantes pueden explotar la funcionalidad de pingback en xmlrpc.php para convertir tu sitio WordPress en un participante involuntario en un ataque de Denegación de Servicio Distribuido (DDoS). Al enviar una solicitud de pingback especialmente elaborada, un actor malicioso puede instruir a tu servidor para que envíe solicitudes HTTP a una URL de destino — efectivamente usando los recursos de tu servidor y la reputación de IP contra un tercero.

Esto no solo daña al objetivo del ataque sino que también puede hacer que la IP de tu servidor sea incluida en listas negras, afectando la entregabilidad y reputación de tu sitio.

3. Agotamiento de recursos del servidor

Incluso sin un ataque coordinado, xmlrpc.php es un objetivo común para bots de escaneo automatizado que sondean vulnerabilidades. Estos sondeos constantes consumen ciclos de CPU, memoria y ancho de banda — recursos que deberían servir a tus visitantes legítimos. En entornos de hosting compartido especialmente, esto puede degradar notablemente el rendimiento del sitio.

4. Exposición innecesaria

Si no estás usando herramientas de publicación remota, aplicaciones móviles que requieran XML-RPC, o integraciones heredadas de terceros, entonces xmlrpc.php proporciona cero beneficio a tu sitio mientras mantiene una superficie de ataque completamente activa. El principio del menor privilegio en seguridad dicta: si no lo necesitas, deshabilitalo.

¿Realmente necesitas xmlrpc.php?

Antes de deshabilitarlo, pregúntate:

Caso de uso¿Aún necesita XML-RPC?
Aplicación móvil de WordPress (moderna)❌ No — usa REST API
Plugin Jetpack⚠️ Parcialmente — consulta la documentación de Jetpack
WooCommerce❌ No
Integraciones IFTTT / Zapier❌ No — usa REST API o webhooks
Windows Live Writer / MarsEdit✅ Sí — clientes heredados
Pingbacks / Trackbacks❌ No — pueden deshabilitarse por separado

Para la gran mayoría de propietarios de sitios WordPress, la respuesta es: no lo necesitas. Deshabilitalo.

Cómo deshabilitar xmlrpc.php en WordPress: 3 métodos

Hay tres métodos confiables para deshabilitar xmlrpc.php, que van desde principiante hasta nivel de servidor. Elige el que mejor se ajuste a tu nivel de comodidad técnico y entorno de hosting.

Método 1: Usar un plugin de seguridad de WordPress (El más fácil)

Si quieres una solución sin código con riesgo mínimo de romper algo, un plugin de seguridad es tu mejor punto de partida.

Plugins recomendados:

  • Wordfence Security — Firewall integral y escáner de malware con bloqueo de XML-RPC.
  • iThemes Security (ahora Solid Security) — Alternancia dedicada para deshabilitar XML-RPC.
  • Disable XML-RPC — Un plugin ligero de propósito único que hace exactamente lo que dice.

Paso a paso:

  1. Inicia sesión en tu panel de administración de WordPress.
  2. Navega a Plugins → Añadir nuevo.
  3. Busca tu plugin elegido (p. ej., “Disable XML-RPC”) y haz clic en Instalar ahora, luego Activar.
  4. Ve a la página de configuración del plugin. Para plugins de seguridad dedicados como Wordfence o iThemes Security, busca una sección etiquetada como XML-RPC o WordPress Tweaks.
  5. Habilita la opción para deshabilitar XML-RPC o bloquear solicitudes XML-RPC.
  6. Guarda tus cambios.

Ventajas: Simple, reversible, no se requiere edición de archivos.

Desventajas: Añade una dependencia de plugin; el archivo aún existe en el servidor (las solicitudes se bloquean a nivel de aplicación, no a nivel de servidor).

Método 2: Bloquear xmlrpc.php a través de .htaccess (Recomendado para servidores Apache)

Para entornos de hosting basados en Apache, editar el archivo .htaccess bloquea solicitudes a nivel de servidor web — antes de que WordPress se cargue. Esto es más eficiente y proporciona protección más fuerte que un plugin solo.

Paso a paso:

  1. Accede a los archivos de tu sitio a través de FTP (usando FileZilla o similar) o a través del Administrador de archivos del panel de control de tu hosting.
  2. Navega a tu directorio raíz de WordPress — esto es típicamente public_html o www.
  3. Localiza el archivo .htaccess. Si no puedes verlo, habilita archivos ocultos en tu cliente FTP (en FileZilla: Servidor → Forzar visualización de archivos ocultos) o en la configuración de tu administrador de archivos.
  4. Abre .htaccess para editar y añade el siguiente bloque al final del archivo:
<Files xmlrpc.php>
    Order Allow,Deny
    Deny from all
</Files>
  1. Guarda el archivo y cierra tu editor.

Para verificar que funciona, visita yoursite.com/xmlrpc.php en tu navegador. Deberías recibir un error 403 Forbidden en lugar de la respuesta XML-RPC predeterminada.

Ventajas: El bloqueo a nivel de servidor es más eficiente; reduce la carga del servidor; no se requiere plugin.

Desventajas: Requiere acceso a archivos; ediciones incorrectas de .htaccess pueden romper temporalmente tu sitio (siempre mantén una copia de seguridad).

> Consejo profesional: Si tu hosting usa Nginx en lugar de Apache, añade lo siguiente a la configuración de tu bloque de servidor Nginx en su lugar:

>

> location = /xmlrpc.php {
deny all;
}

Método 3: Deshabilitar a través de functions.php (WordPress Filter Hook)

Este método utiliza un filtro de WordPress para deshabilitar programáticamente la funcionalidad XML-RPC desde dentro del tema o un plugin personalizado. Es una solución limpia basada en código que funciona a nivel de capa de aplicación de WordPress.

Paso a paso:

Opción A — A través del editor de temas (rápido pero no recomendado para producción):

  1. En tu panel de WordPress, ve a Apariencia → Editor de temas.
  2. Selecciona functions.php de la lista de archivos en el lado derecho.
  3. Añade el siguiente código al final del archivo:
add_filter('xmlrpc_enabled', '__return_false');
  1. Haz clic en Actualizar archivo para guardar.

Opción B — A través de un plugin personalizado (recomendado):

En lugar de editar el functions.php de tu tema (que se sobrescribe en actualizaciones de tema), crea un plugin personalizado simple:

  1. Usando FTP o Administrador de archivos, navega a wp-content/plugins.
  2. Crea una nueva carpeta llamada disable-xmlrpc.
  3. Dentro de esa carpeta, crea un archivo llamado disable-xmlrpc.php con el siguiente contenido:
<?php
/*
Plugin Name: Disable XML-RPC
Plugin URI: https://example.com
Description: Disables XML-RPC functionality
Version: 1.0
Author: Your Name
*/

add_filter('xmlrpc_enabled', '__return_false');
?>
  1. Ve a Plugins → Plugins instalados en tu panel y activa Disable XML-RPC.

Ventajas: Limpio, independiente del tema (cuando se usa el método de plugin personalizado); fácil de revertir.

Desventajas: Solo a nivel de aplicación — el archivo aún existe y puede recibir solicitudes (aunque serán rechazadas); no reduce la carga del servidor tan efectivamente como el bloqueo .htaccess.

Combinando métodos para máxima seguridad

Para la protección más fuerte, combina el método 2 (.htaccess) con el método 3 (filter hook):

  • La regla .htaccess bloquea solicitudes a nivel de servidor, reduciendo la carga.
  • El filter hook asegura que XML-RPC esté deshabilitado incluso si la regla .htaccess alguna vez se omite o sobrescribe.

Este enfoque en capas sigue el principio de seguridad de defensa en profundidad — múltiples controles independientes protegiendo el mismo activo.

Cómo verificar que xmlrpc.php está deshabilitado exitosamente

Después de aplicar tu método elegido, confirma que funciona:

  1. Prueba del navegador: Visita yoursite.com/xmlrpc.php. Un bloqueo exitoso muestra un error 403 Forbidden o 404 Not Found.
  2. Verificador XML-RPC en línea: Usa una herramienta como xmlrpc.eritreo.it para probar si el punto final XML-RPC de tu sitio responde.
  3. Registros del servidor: Consulta tus registros de acceso para cualquier solicitud restante a xmlrpc.php — una caída repentina confirma que el bloqueo funciona.

Elegir el hosting correcto para la seguridad de WordPress

Deshabilitar xmlrpc.php es solo una capa de seguridad de WordPress. La base de un sitio WordPress seguro comienza con elegir el proveedor de hosting correcto — uno que ofrezca controles de seguridad a nivel de servidor, copias de seguridad regulares e infraestructura diseñada para resistir ataques.

En AlexHost, la seguridad de WordPress está integrada en la pila de hosting. Ya sea que estés ejecutando un blog personal o un sitio empresarial de alto tráfico, el plan correcto marca una diferencia significativa:

  • Hosting VPS — El acceso root completo te permite implementar configuraciones de seguridad a nivel de servidor, incluidas reglas personalizadas de Nginx o Apache para bloquear xmlrpc.php a nivel de infraestructura. Ideal para desarrolladores y sitios en crecimiento que necesitan control granular.
  • Hosting web compartido — Un punto de entrada rentable para sitios WordPress, con configuraciones de seguridad gestionadas y acceso fácil a la edición de .htaccess a través del panel de control.
  • VPS con cPanel — Combina el poder de un servidor privado virtual con la interfaz familiar de cPanel, haciendo que sea sencillo gestionar archivos .htaccess, certificados SSL y configuraciones de seguridad sin experiencia en línea de comandos.
  • Certificados SSL — Encriptar tu sitio con HTTPS es una línea de base de seguridad innegociable. Un certificado SSL asegura que incluso si se realizan solicitudes XML-RPC, las credenciales y datos transmitidos estén encriptados en tránsito.
  • Registro de dominios — Mantén tu dominio y hosting bajo un mismo techo para gestión de DNS simplificada y superficie de ataque reducida de vulnerabilidades de registrador de terceros.

Emparejar infraestructura de hosting fuerte con endurecimiento a nivel de aplicación como deshabilitar xmlrpc.php le da a tu sitio WordPress una postura de seguridad robusta y multicapa.

Preguntas frecuentes

¿Deshabilitará xmlrpc.php romperá mi sitio WordPress?

Para la mayoría de usuarios, no. Si no usas clientes de blog de escritorio heredados, la aplicación oficial de WordPress (las versiones modernas usan REST API), o integraciones específicas de terceros que explícitamente requieran XML-RPC, deshabilitarlo no tendrá efecto notable en la funcionalidad.

¿Jetpack requiere xmlrpc.php?

Las versiones antiguas de Jetpack se basaban en XML-RPC. Las versiones modernas de Jetpack utilizan principalmente la REST API de WordPress.com. Consulta la documentación de tu versión específica de Jetpack antes de deshabilitar XML-RPC.

¿Puedo simplemente deshabilitar pingbacks en lugar de todo XML-RPC?

Sí. Si quieres mantener XML-RPC activo para otros propósitos pero eliminar el abuso de pingback, añade esto a tu functions.php:

add_filter('xmlrpc_methods', function($methods) {
    unset($methods['pingback.ping']);
    return $methods;
});

¿Se elimina xmlrpc.php en versiones más nuevas de WordPress?

No. A partir de los últimos lanzamientos de WordPress, xmlrpc.php aún se incluye y se habilita por defecto. El equipo central de WordPress ha discutido su futuro, pero permanece presente por compatibilidad hacia atrás.

Conclusión

xmlrpc.php es un archivo heredado de WordPress que una vez sirvió un propósito legítimo pero hoy representa una de las vulnerabilidades más comúnmente explotadas en instalaciones de WordPress en todo el mundo. A menos que tengas una necesidad específica y documentada de funcionalidad XML-RPC, deshabilitarlo es una mejora de seguridad sencilla y de alto impacto que toma menos de cinco minutos para implementar.

Para recapitular tus opciones:

MétodoDificultadNivel de protecciónRecomendado para
Plugin de seguridad⭐ FácilA nivel de aplicaciónPrincipiantes
Bloqueo .htaccess⭐⭐ MedioA nivel de servidorLa mayoría de usuarios
15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar