¿Cómo deshabilitar XML-RPC en WordPress?

Publicado: 2022-09-19

¿Busca sobre el archivo xmlrpc.php y cómo puede deshabilitarlo en WordPress? Este artículo explicará qué es xmlrpc.php y cómo puede desactivarlo.

La comunicación con WordPress desde aplicaciones fuera del entorno de WordPress a través de la especificación XML-RPC es posible mediante la estandarización de un método de comunicación entre sistemas.

Desde su origen, esta especificación ha sido de gran valor para la comunidad de WordPress. Sin él, WordPress habría quedado aislado del resto de Internet.

Sin embargo, xmlrpc.php también tiene algunas desventajas. La API REST de WP se ha convertido en un componente vital de WordPress desde que se descubrieron las vulnerabilidades del archivo xmlrpc.php. Esto mejora enormemente la forma en que WordPress interactúa con otros programas de software.

El propósito de este artículo es explicar qué es xmlrpc.php, por qué debe deshabilitarse y cómo puede deshabilitarlo.

También le sugerimos que consulte nuestro artículo sobre los mejores complementos de seguridad de WordPress.

¿Qué es el archivo xmlrpc.php?

El objetivo de esta sección es responder a la pregunta ¿Qué es XML-RPC PHP? La especificación XML-RPC se puede utilizar para comunicarse entre WordPress y otros sistemas.

Utilizando HTTP como protocolo de transporte y XML como protocolo de codificación, XML-RPC podría estandarizar los protocolos utilizados en estas comunicaciones.

WordPress se bifurcó en 2003 a partir del software de blogs b2, que utilizaba XML-RPC como interfaz. Un archivo llamado xmlrpc.php reside en el directorio raíz del sistema y contiene el código para esta función. Este archivo aún está disponible a pesar de que XML-RPC está prácticamente obsoleto.

Era la configuración predeterminada en las primeras versiones de WordPress para deshabilitar XML-RPC. Desde la versión 3.5, se ha habilitado de forma predeterminada para admitir la comunicación entre su aplicación móvil de WordPress y su instalación de WordPress.

Antes de la versión 3.5 de WordPress, la aplicación móvil de WordPress solo podía publicar contenido si su sitio estaba configurado con XML-RPC. Esto se debió al hecho de que la aplicación no ejecutaba WordPress; en cambio, se comunicó con su sitio de WordPress usando xmlrpc.php.

Además, XML-RPC se utiliza para la comunicación entre WordPress y otras plataformas de blogs y entre WordPress y la aplicación móvil de WordPress.

XML-RPC se puede utilizar para pingbacks y trackbacks. También sirvió como backend para el complemento Jetpack, lo que hizo posible que los sitios de WordPress alojados en sí mismos se convirtieran en miembros de WordPress.com.

Debido a que la API REST ahora se ha integrado en el núcleo de WordPress, ya no usamos el archivo xmlrpc.php. En lugar de utilizar este archivo, ahora puede comunicarse con la aplicación móvil de WordPress, los clientes de escritorio, el complemento Jetpack y otros sistemas y servicios mediante la API REST.

También es posible integrar la API REST con una gama más amplia de sistemas y su flexibilidad es mayor que la de xmlrpc.php. Dado que XML-RPC ha sido reemplazado por API REST, debe deshabilitar xmlrpc.php en su sitio web para evitar problemas.

¿Por qué debería deshabilitar XML-RPC?

Debe tener en cuenta que el archivo xmlrpc.php puede exponer la vulnerabilidad habilitada para XML-RPC de su sitio de WordPress a los piratas informáticos, por lo que debe desactivarlo.

El uso de XML-RPC ya no es necesario para las comunicaciones fuera de WordPress. Si desea mantener su sitio lo más seguro posible, debe desactivarlo.

Es por esta razón que WordPress siempre será compatible con versiones anteriores. Debe actualizar constantemente los complementos y temas de WordPress asociados con los sitios web de WordPress si es responsable de ellos.

Si XML-RPC está habilitado en su sitio web, un pirata informático puede usarlo como una herramienta para lanzar un ataque DDoS en su sitio web. Pueden usar el módulo xmlrpc.php para generar muchos pingbacks a su sitio, lo que puede sobrecargar el servidor y hacer que el sitio web se caiga.

Además, xmlrpc.php también envía información de autenticación con cada solicitud, por lo que los piratas informáticos pueden interceptar esta información y utilizarla para intentar acceder a su sitio web. Este ataque de fuerza bruta puede permitir que los piratas informáticos ejecuten código malicioso, eliminen código e incluso dañen su base de datos.

¿Cómo comprobar que XML-RPC está habilitado?

Haga clic en el siguiente enlace para acceder al sitio web: Servicio de validación XML-RPC de WordPress.

Una vez que haya ingresado su nombre de dominio, haga clic en el botón Verificar.

Verifique que xmlrpc esté habilitado en WordPress

Si la prueba fue exitosa, ahora se habilitará XML-RPC, que debe desactivarse de inmediato.

Deshabilitar XMLRPC usando complementos de WordPress

Por varias razones, los propietarios de sitios pueden desear deshabilitar la funcionalidad XMLRPC. Puede usar varios complementos, como Deshabilitar XML-RPC, para hacer esto.

Deshabilitar XMLRPC usando el complemento Deshabilitar XML-RPC

Explicamos cómo usar el complemento Deshabilitar XML-RPC para deshabilitar la funcionalidad XMLRPC. Inicie sesión en su panel de administración de WordPress.

1. Haga clic en Complementos y luego en Agregar nuevo.

2. Ingrese "Deshabilitar XML-RPC" en el cuadro de búsqueda. Instale el complemento Deshabilitar XML-RPC después de eso.

Instalar nuevo complemento en WordPress

3. Active el complemento y estará listo para comenzar. Entonces, el XML-RPC está deshabilitado.

Instalar el complemento Desactivar CML-RPC

En este complemento, puede encontrar un validador XML-RPC que se puede usar para verificar si XML-RPC se ha desactivado. En caso de que XML-RPC haya sido deshabilitado, aparecerá un mensaje de falla. Si no, puede desactivarlo con este complemento.

Configure la activación de API REST y XML-RPC con un complemento

El complemento REST XML-RPC Data Checker le permite configurar la API REST y xmlrpc.php en su sitio web de manera más detallada.

Una vez que haya instalado y activado el complemento, haga clic en la pestaña XML-RPC después de hacer clic en la pestaña REST XML-RPC Data Checker en la configuración.

A través del complemento, puede especificar exactamente qué características de xmlrpc.php están habilitadas en su sitio. También es posible desactivarlo por completo. También hay una pestaña en el complemento que le permite controlar la API REST si elige hacerlo.

Deshabilitar XMLRPC sin un complemento

Si prefiere no agregar otro complemento a su sitio web, puede deshabilitar xmlrpc.php usando un filtro o su archivo .htaccess. Consideremos ambas opciones juntas.

Deshabilite xmlrpc.php a través de un filtro

Al usar el filtro xmlrpc_enabled, es muy fácil deshabilitar xmlrpc.php. Debe agregar esta función y activarla en su sitio web:

 add_filter( 'xmlrpc_enabled', '__return_false' );

La función podría agregarse al archivo de funciones del tema. Un archivo .htaccess también se puede editar usando cPanel o FTP, dependiendo de si está conectado a un proveedor de alojamiento usando Apache.

La función __return_false de WordPress devuelve la condición booleana falsa. Este filtro solo bloquea las operaciones que requieren un usuario registrado.

Debe cancelarse el registro de todos los métodos para deshabilitar todas las operaciones del servidor XMLRPC. Para lograr esto, debe conectarse al filtro xmlrpc_methods.

 add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }

El archivo xmlrpc.php crea un objeto de clase wp_xmlrpc_server cuando se realiza una solicitud. Dentro de la carpeta wp-includes hay un archivo de clase que contiene una propiedad llamada métodos.

La propiedad de métodos incluye una matriz de nombres de funciones a las que se puede acceder a través de solicitudes XML-RPC.

La función se devuelve con un mensaje de error cuando no está incluida en esta matriz. Por lo tanto, si vacía la matriz, tiene la seguridad de que no podrá utilizar ninguna función.

Deshabilitar XML-RPC usando .htaccess

Deshabilitar el XML-RPC usando .htaccess incluye algunos pasos simples. Así es como puede deshabilitar xmlrpc.php .htaccess:

  • Puede usar FTP o el Administrador de archivos para navegar al directorio raíz de su sitio web.
  • Debes abrir el archivo .htaccess.
  • Deberá agregar el siguiente código a su archivo .htaccess:
 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>

xxx.xxx.xxx.xxx se puede reemplazar con la dirección IP a la que desea otorgar acceso a xmlrpc.php. Si desea eliminar xmlrpc.php de WordPress por completo, puede eliminar esta línea.

Deshabilitar XMLRPC en Apache/Nginx

Deshabilitar XMLRPC en Apache/Nginx también puede ser un proceso simple. El siguiente código debe agregarse al archivo de configuración de Apache para deshabilitar xmlrpc.php:

 < VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >

Usando el siguiente código en el archivo de configuración de Nginx, puede deshabilitar xmlrpc.php:

 server { ----------- location /xmlrpc.php { deny all; } }

¿Cómo buscar y encontrar ataques XML-RPC en diferentes distribuciones de Linux?

Si está buscando ataques XML-RPC en diferentes distribuciones de Linux, puede usar los siguientes comandos para detener los ataques xmlrpc.php:

Un servidor CentOS con Apache instalado:
 # grep xmlrpc /var/logs/httpd/access.log
Con Apache en Ubuntu:
 # grep xmlrpc /var/logs/apache2/access.log
Para servidores basados ​​en Nginx:
 # grep xmlrpc /var/logs/nginx/access.log
Para servidores basados ​​en cPanel:
 # grep xmlrpc /home/username/logs/access.log

Recibiría el siguiente resultado si los comandos anteriores se ejecutaran en un sitio de WordPress que está bajo ataque:

 POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)

Cuándo mantener habilitado el archivo XML-RPC.php

Hay algunas situaciones en las que sería ventajoso habilitar XML-RPC, y estas son algunas de ellas:

  • Si la API REST no está disponible cuando tiene un sitio web antiguo que no se puede actualizar a la versión 4.4 o superior por cualquier motivo.
  • Un programa no puede acceder a la API REST en el sitio web que está utilizando para comunicarse con él.
  • Para integrar algunas aplicaciones de terceros que requieren XML-RPC para funcionar.

Sin embargo, debe tenerse en cuenta que ninguna de las críticas anteriores son motivos suficientes para seguir utilizando XML-RPC y xmlrpc.php exploit.

La única razón por la que WordPress lo tiene es que es compatible con versiones anteriores; como resultado, solo querrá usarlo si está usando una versión desactualizada de WordPress.

Para aquellos que deseen mantener su sitio actualizado y admitir la última versión del software, xmlrpc.php debe estar deshabilitado.

Prueba de la funcionalidad XML-RPC en WordPress

Además, puede usar la opción de prueba de WordPress para verificar que su sitio web se haya desactivado correctamente para recibir solicitudes XML-RPC.

Para este propósito, puede descargar la aplicación móvil de WordPress en su teléfono. Hay versiones para Android y iPhone de esta aplicación disponibles. Después de instalar la aplicación en su dispositivo, toque Ingrese la dirección de su sitio existente para comenzar a usarla.

Ha terminado si ve el mensaje de error de que los servicios XML-RPC están deshabilitados en este sitio. Este es un mensaje prohibido de WordPress xmlrpc.php 403.

Conclusión

La especificación XML-RPC se desarrolló antes de la creación de WordPress para permitir la comunicación con aplicaciones y sistemas externos. Existen varias fallas de seguridad en esta especificación, lo que podría hacer que su sitio web sea vulnerable a los ataques.

La API REST permite que su sitio se comunique con otros programas, lo que hace posible deshabilitar xmlrpc.php sin preocupaciones. Si desea aumentar la seguridad de su sitio web, siga los pasos mencionados para hacerlo.