XML-RPC es una API principal de WordPress que permite a los usuarios conectarse a su sitio web de WordPress utilizando aplicaciones, herramientas y servicios de terceros. Desafortunadamente, en el pasado, los hackers han encontrado formas de explotar XML-RPC para obtener acceso a sitios web de WordPress.
En WPBeginner, hemos ayudado a miles de usuarios a asegurar su sitio de WordPress y a deshabilitar XML-RPC. Descubrimos que hay diferentes maneras de hacerlo, dependiendo de su conocimiento técnico.
Por ejemplo, puede deshabilitar XML-RPC accediendo al archivo .htaccess o agregando un fragmento de código. Mientras tanto, si usted es principiante, existe un plugin que deshabilita el archivo principal sin necesidad de editar código.
En este artículo, le mostraremos cómo deshabilitar fácilmente XML-RPC en WordPress utilizando diferentes métodos.

¿Qué es XML-RPC en WordPress?
XML-RPC es una API principal de WordPress que se ha habilitado por defecto desde que se lanzó WordPress 3.5 en 2012. Permite a los desarrolladores usar protocolos XML y HTTPS para conectarse e interactuar con su sitio web de WordPress.
En resumen, necesita tener XML-RPC habilitado para acceder y publicar su blog de forma remota, como cuando desea usar una aplicación móvil para administrar su sitio o hacer conexiones a servicios de automatización como Uncanny Automator o Zapier.
Sin embargo, si no estás usando aplicaciones móviles con tu sitio web, entonces algunos expertos en seguridad de WordPress podrían aconsejarte deshabilitar XML-RPC. Esto cierra una puerta que potencialmente podría ser explotada para hackear tu sitio web.
Dicho esto, veamos cómo deshabilitar fácilmente la API XML-RPC en WordPress. El método .htaccess es el mejor porque es el que menos consume recursos, y los otros métodos son más fáciles para principiantes.
- Método 1: Deshabilitar XML-RPC de WordPress con .htaccess (Avanzado)
- Método 2: Deshabilitar XML-RPC de WordPress con un fragmento de código (Recomendado)
- Método 3: Deshabilitar XML-RPC de WordPress con un plugin
- Comprobando que XML-RPC de WordPress está deshabilitado
Método 1: Deshabilitar XML-RPC de WordPress con .htaccess (Avanzado)
Este método es para usuarios avanzados porque requiere que edites el archivo .htaccess de tu sitio. Recomendamos que los principiantes usen el Método 2 o 3.
Esta forma tiene varias ventajas, como la capacidad de dar acceso remoto a ti y a tu equipo mientras restringes a todos los demás. Tampoco afectará negativamente el rendimiento de tu WordPress, ya que deshabilita las solicitudes XML-RPC antes de que se pasen a WordPress.
Deberás agregar el siguiente código a tu archivo .htaccess. Puedes hacerlo conectándote a tu sitio usando un cliente FTP o un administrador de archivos. Además, los usuarios de All in One SEO pueden usar la herramienta de editor integrada del plugin para agregar el fragmento de código, como puedes ver en la siguiente captura de pantalla.
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

Si deseas otorgar acceso remoto a tu sitio a un usuario determinado, simplemente reemplaza '123.123.123.123' en la línea 5 con su dirección IP. Puedes agregar múltiples direcciones IP separándolas con espacios.
O, si deseas deshabilitar XML-RPC por completo, elimina la línea 5 por completo.
Nota: Si no puedes localizar .htaccess, consulta nuestra guía sobre por qué no puedes encontrar el archivo .htaccess en WordPress.
Método 2: Deshabilitar XML-RPC de WordPress con un fragmento de código (Recomendado)
Este método requiere que agregues algo de código a tu sitio web de WordPress. Si no lo has hecho antes, consulta nuestra guía sobre cómo copiar y pegar fragmentos de código personalizados en WordPress.
WPCode es la forma más fácil y segura de agregar código a tu sitio de WordPress. Te ayuda a administrar tus fragmentos de código y evita que cualquier error rompa tu sitio.
En este método, usaremos uno de los fragmentos de código integrados de WPCode para deshabilitar XML-RPC.
Primero, necesitas instalar el plugin gratuito WPCode. Para obtener instrucciones paso a paso, consulta nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.
Después de la activación, dirígete a Fragmentos de código » Agregar fragmento. La biblioteca de WPCode ya contiene un fragmento que deshabilita XML-RPC. Puedes encontrarlo buscando 'xml'.
Una vez que lo encuentres, necesitas hacer clic en el botón 'Usar fragmento'.

A continuación, necesitas cambiar el interruptor 'Activo' a la posición 'Activado'.
Finalmente, asegúrate de hacer clic en el botón 'Actualizar' para habilitar el fragmento en tu sitio y deshabilitar la API XML-RPC.

Método 3: Deshabilitar XML-RPC de WordPress con un plugin
Este es un método simple que se puede usar si no deseas agregar ninguna otra personalización a tu sitio web con un plugin de fragmentos de código.
Simplemente instala y activa el plugin Disable XML-RPC-API. Para más detalles, consulta nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.
El plugin funciona de inmediato y desactivará XML-RPC inmediatamente.
Puedes navegar a XML-RPC Security » XML-RPC Settings para configurar el plugin. Por ejemplo, puedes permitir que ciertos usuarios accedan a XML-RPC agregando sus direcciones IP a la lista blanca.

Comprobando que XML-RPC de WordPress está deshabilitado
Ahora deberías verificar para asegurarte de que deshabilitaste correctamente la API XML-RPC en tu sitio web de WordPress.
También puedes verificar que XML-RPC está deshabilitado simplemente visitando la URL http://example.com/xmlrpc.php en tu navegador. Asegúrate de reemplazar 'example.com' con el nombre de dominio de tu propio sitio web.
Si XML-RPC está deshabilitado, deberías ver el mensaje de error: 'Forbidden: You don’t have permission to access this resource.'
Esperamos que este artículo te haya ayudado a aprender cómo deshabilitar fácilmente XML-RPC en WordPress. También te puede interesar nuestra guía sobre cómo agregar fácilmente JavaScript en WordPress y las mejores herramientas de desarrollo de WordPress.
Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.


Jiří Vaněk
Gracias por el fragmento. Al final, deshabilité XML-RPC usando WPCode porque parecía la forma más fácil, y también puedo revertir XML-RPC fácilmente. ¡Genial!
Pete Mason
en htaccess, la línea:
allow from 123.123.123.123
Parece que quiere ser editada con mi dirección IP. Pero esto no se indica en ninguna parte —?
Christine
¿Hay alguna diferencia entre deshabilitar y bloquear?
Soporte de WPBeginner
Bloquear intentaría limitar el acceso a la función, mientras que deshabilitar la desactivaría por completo. Si la deshabilitas, no tendrías que preocuparte de que alguien acceda a ella por un método diferente.
Administrador
Rashmi K
El plugin recomendado Disable XML-RPC no se ha actualizado en los últimos 2 años. Dice que el plugin no ha sido probado con las últimas 3 versiones de WordPress.
Soporte de WPBeginner
Para conocer nuestra postura sobre la advertencia de no probado, te recomendamos que consultes nuestro artículo a continuación:
https://www.wpbeginner.com/opinion/should-you-install-plugins-not-tested-with-your-wordpress-version/
Administrador
Nikhil
Hola,
¿Deshabilitar el acceso a xmlrpc.php también deshabilitará el acceso a las API de WordPress utilizadas para el desarrollo de aplicaciones para Android/iOS?
Soporte de WPBeginner
Eso dependería de la API que utilicen las propias aplicaciones.
Administrador
Vyom
Solución encontrada:
Agregando la siguiente información en la configuración de nginx:
# bloque nginx para solicitudes xmlrpc.php
location /xmlrpc.php { deny all; }
Vyom
Uso nginx en lugar de Apache. ¿Puedo seguir usando .htaccess en mi sitio?
¿Y necesito guardar este archivo en el directorio public_html, o un nivel por encima de él?
Soporte de WPBeginner
Si estás usando nginx, entonces no podrías usar htaccess
Administrador
Vyom
Gracias por la respuesta. Entonces, ¿hay una alternativa para nginx?
Soporte de WPBeginner
Agregarías el plugin específico del sitio o el plugin anterior en el artículo.
Chinecherem Somto
Hola, ¿es en el archivo .htaccess en la raíz del sitio web donde pegaré el código?
Soporte de WPBeginner
Yes, the .htaccess in your site’s root folder is where you would add the .htaccess code
Administrador
Mojtaba Rezaeian
Gracias autor.
Soporte de WPBeginner
You are welcome Mojtaba
Administrador
Bapi
¿Cómo usar múltiples IPs o un rango de IPs como 123.123.123.1, 2, 3, …… 100,101?
malcolm
¿Por qué permitiríamos 123.123.123.123?
Si no estamos usando el servicio en absoluto, ¿por qué no dejar que "deny all" sea absoluto?
Edward
Si estoy leyendo el código correctamente;
order deny,allow – pone deny antes que allow, ya que deny es ‘all’ entonces allow no se procesa
deny from all – hace lo que dice
allow from 123.123.123.123 – es un marcador de posición
Entiendo que si tienes una dirección IP fija podrías cambiar el orden a "allow,deny" y reemplazar 123.123.123.123 con tu dirección IP. Eso permitiría tu IP y luego denegaría a todas las demás.
David Hoy
Thanks WP-Beginner, I’m trying to be baddest WP boy in my neighbourhood and this is exactly why I keep coming back to you guys, each question I have you say; here is the easy way, and here is the RIGHT way
Mi .htaccess y yo vamos a tener una pequeña charla sobre htpasswrd y esta cosa de XMLRPC que mis clientes nunca necesitarán.
¡Todos ustedes hicieron que mi rincón de la red fuera un poco más seguro, como diría MailChimp: ¡Chócala!
Soporte de WPBeginner
Hola David,
Thanks for the kind words. We are glad you find WPBeginner helpful
Administrador
Cezar
Ok, usaré este código pero quiero que IFTTT funcione en mi sitio web, ¿qué necesito agregar?
# Bloquear solicitudes de WordPress xmlrpc.php
orden denegar,permitir
denegar a todos
permitir desde 123.123.123.123
PhilB
Hola,
He seguido las instrucciones para bloquear el archivo xmlrpc.php usando .htaccess, pero no estoy seguro de si está funcionando.
Estoy usando la seguridad de Wordfence y en la vista de tráfico en vivo puedo ver que las solicitudes para el archivo xmlrpc.php se han detenido, pero si reviso mis registros de acceso
tail -f /apache2/logs/access_log
Todavía puedo ver las solicitudes llegando, pero el código al final ha cambiado de 500 a 403. Me preocupa que mi plugin WordFence me esté dando un informe falso y que todavía me esté inundando de spam. ¿Alguien puede aconsejarme?
Gracias,
PhilB
David Hoy
¡Oh sí! ¡Eso está funcionando perfectamente, tu XMLRPC está PROHIBIDO!
Código de estado HTTP 403: El servidor entendió la solicitud pero se niega a autorizarla.
Raymundo
Tengo un problema extraño…
Estoy usando mis blogs de WordPress con IFTTT y todo funcionaba bien, hasta que lo integré con MaxCDN; IFTTT dejó de funcionar inmediatamente. Hice una investigación y el problema podría estar relacionado con XML-RPC que fue desactivado.
Cuando reviso mi panel en "Configuración" > "Escritura", no veo nada como XML-RPC, Publicación remota, etc. He revisado la base de datos en opciones, tampoco está disponible / falta xml-rpc.
Necesito activar XML-RPC para que mi IFTTT siga funcionando.
¿Cómo reactivo XML-RPC? Todo lo que necesito es un script que pueda agregar en .htaccess o functions.php para activar XML-RPC.
¿Y por qué me falta la funcionalidad XML-RPC en mi panel?
¡Gracias!
Muhammad Ammar Ashfaq
Estaba buscando cómo agregar este archivo xmlprc.php a mi wordpress, estoy usando la versión 4.5.3 y llegué a esta página. Necesito agregar este archivo php porque cuando habilito jetpack, obtengo un error de site_inaccessible. Por favor, díganme cómo resolver este error, mi sitio es
Soporte de WPBeginner
Conéctate a tu sitio de WordPress usando un cliente FTP o el Administrador de archivos en cPanel. En el directorio raíz de tu sitio web, busca el archivo xmlrpc.php. Si está ahí, entonces intenta el paso 2. Si no está, descarga una copia nueva de WordPress. Descomprímelo y extráelo, y sube el archivo xmlrpc.php de nuevo al directorio raíz de tu sitio.
Paso 2: Revisa el archivo functions de tu tema de WordPress en busca del código que deshabilita XML-RPC.
Paso 3: Revisa tus archivos .htaccess y wp-config.
Administrador
omonaija
Por favor, ¿qué puedo hacer para habilitar xmlrpc en mi sitio? Porque no puedo iniciar sesión usando la aplicación móvil de WordPress en mi smartphone.
Soporte de WPBeginner
Si estás usando un plugin de seguridad en tu sitio de WordPress, entonces revisa su configuración.
Administrador
Mook
¡Booyah! Este filtro de WP arregló el ataque de script kiddie. Todavía bloqueé a la persona con el firewall, pero no tengo que vigilar los registros como un halcón para agregar más IPs al firewall. GRACIAS.
Soporte de WPBeginner
Por eso usamos Sucuri.
Administrador
Alex
¿Es eso porque Sucuri actúa como el plugin Disable XMLRPC?
Si es así, ¿puedo eliminar mi plugin Disable XMLRPC?
Gracias
Alex
Soporte de WPBeginner
Sucuri actúa como un firewall entre tu sitio y los usuarios. Bloquea cualquier actividad sospechosa antes de que pueda llegar a tu sitio web.
Chad
Estoy totalmente de acuerdo con deshabilitar xmlrpc.php a nivel de servidor en mi archivo /etc/httpd/conf/includes/pre_main_global.conf. Pero me quedan estas preguntas... ¿hay alguna forma de determinar que un plugin en particular "NECESITA" xmlrpc.php para funcionar? Me preocupa bloquear el acceso a él y luego tener un problema 2 meses después y no saber que el problema se debe a que bloqueé xmlrpc.php anteriormente.
¿Hay alguna señal común que buscar en un archivo de registro o algo similar que apunte a un bloqueo de xmlrpc.php como causa?
Soumitra
Hola, acabo de instalar el plugin, Desactivar XML-RPC
¡Veamos!
Phranq
Hola, estoy usando la aplicación de WordPress para publicar con mi smartphone Android. Ahora no puedo iniciar sesión y mis credenciales de inicio de sesión son correctas. La respuesta que obtuve fue "no podemos iniciar sesión, no pudimos conectarnos al sitio de WordPress". ¿Podrías ayudarme a solucionar este error de inicio de sesión de la aplicación de WordPress?
Soporte de WPBeginner
Si desactivaste XML RPC, es posible que no puedas iniciar sesión usando la aplicación móvil de WordPress. Busca en el archivo functions.php de tu tema este código
add_filter('xmlrpc_enabled', '__return_false');1-click Use in WordPress
Si está ahí, entonces necesitas eliminarlo. También puedes intentar desactivar plugins y activarlos uno por uno hasta que encuentres el plugin que te impide iniciar sesión usando la aplicación móvil de WordPress.
Administrador
Josiah
Vale la pena notar que "allow from 123.123.123.123" es opcional, y si se usa, debe actualizarse para incluir tu IP, o la IP del dispositivo que necesita acceso a xmlrpc.php (sería bueno citar ejemplos en este artículo).
Natalie
Estoy usando el plugin GoodbyeCaptcha para desactivar XML-RPC y funciona sin problemas mientras Jetpack está activado.
Espero que ayude
ATI
Lo siento, he intentado este método muchas veces. No funcionó para mí; de hecho, bloqueó el front-end (impidiendo el acceso de lectura de los visitantes a la página web) después de agregar estos códigos al archivo .htaccess.
Gretchen Louise
¿Desactivarlo de esta manera previene este problema? http://theaffluentblogger.com/operating-a-website/wordpress-xmlrpc-php-vulnerability-affects-shared-hosting-sites/ Tengo una amiga cuyo sitio web se bloquea continuamente porque su archivo xmlrpc está siendo atacado.
Personal editorial
Sí, prevendrá el ataque hasta cierto punto.
Administrador
Christopher Ross
Keith, hay una tendencia en WordPress a mover las funciones no relacionadas con el tema fuera del archivo functions.php y a un "plugin específico del sitio", básicamente un plugin que solo activas en un sitio web único y almacena las funciones no relacionadas con el tema para ese sitio.
Puedes lograr lo mismo colocando el código en tu archivo functions.php.
Keith Davis
Gracias Chris
Parece que ustedes ya lo cubrieron.
https://www.wpbeginner.com/beginners-guide/what-why-and-how-tos-of-creating-a-site-specific-wordpress-plugin/
Por cierto, ¿qué pasó con tu sistema de comentarios?
¿Era Livefyre, luego algo relacionado con Twitter y Facebook, y ahora?
Keith Davis
Hola a todos
Disculpen mi torpeza, pero ¿podrían explicarme... "Todo lo que tienen que hacer es pegar el siguiente código en un plugin específico del sitio:"
¿Qué plugins son específicos del sitio?