¿Qué es XML-RPC en WordPress?

¿Qué es XML-RPC en WordPress?

XML-RPC es una característica de WordPress que le permite a tu sitio web comunicarse con otras plataformas. A través de este canal de comunicación, se pueden conectar clientes de correo, procesadores de texto, incluso otras webs de blogging pueden comunicarse con tu WordPress para hacer trackbacks y pingbacks.

Si alguna vez utilizaste la aplicación para celulares de WordPress, originalmente se comunicaba a través de XML-RPC. Jetpack utiliza XML-RPC para comunicar datos a tu cuenta de WordPress.com, según lo informan en su sitio web. Por lo tanto, si utilizás Jetpack, ya te anticipamos que NO bloquees el XML-RPC.

En la versión 4.7 de WordPress, se implementó de forma nativa la comunicación a través de API Rest. Si bien la mayoría de las conexiones con WordPress se realizan utilizando su API Rest, el núcleo de WordPress todavía tiene incorporado el formato de intercambio XML-RPC, principalmente para evitar problemas de compatibilidad con sitios web y plugins que aún utilizan este canal.

¿Cómo saber si tenés el XML-RPC bloqueado en tu sitio web?

Existen algunas formas para verificar si tu sitio web tiene bloqueado el XML-RPC.

La primera y la que te recomendamos por ser muy sencilla, es ingresar en el navegador https://dominio.com/xmlrpc.php, es decir la URL de tu sitio web seguido del nombre del archivo xmlrpc.php. Por ejemplo, podés ingresar https://experienciasdigitales.studio/xmlrpc.php

Si te aparece un mensaje similar al siguiente: “XML-RPC server accepts POST requests only” quiere decir que XML-RPC está habilitado. Por el contrario si te aparece un error “403 Forbidden» o similar, entonces está bloqueado.

La segunda forma de chequear es a través del sitio web https://xmlrpc.eritreo.it/ . En este sitio ingresás la URL, hacés click en “Check” y te dirá el estado del XML-RPC. Es importante que sepas que si vas a utilizar este sitio web, no ingreses ni tu usuario ni tu contraseña. Para este tipo de chequeos, no son necesarios.

¿Por qué es peligroso tener el XML-RPC habilitado?

El principal problema de dejar habilitado el XML-RPC en WordPress es la seguridad. Hay diversas formas de atacar un sitio web utilizando XML-RPC. Las más destacadas son el «ataque de fuerza bruta» o brute force attack, y la “denegación distribuida de servicios” o DDoS (distributed denial of services).

El archivo xmlrpc.php se encuentra en la raíz de nuestro sitio web (al mismo nivel donde se encuentran las carpetas wp-content, wp-admin, el archivo wp-config.php, etc.).

Este archivo, encargado de permitir la conexión a través de XML-RPC no representa un peligro en sí mismo. De hecho, podrías eliminarlo sin que tu sitio web se vea perjudicado. Esta solución no la recomendamos en absoluto ya que primero, es parte del núcleo mismo de WordPress y cualquier chequeo de integridad del mismo te va a arrojar el error de que falta dicho archivo. Y segundo, cuando actualices la versión de WordPress, el archivo volverá a estar ahí, con lo cual tendrías que recordar eliminarlo cada vez que hagas una actualización de WordPress en tu sitio web.

¿Cómo bloquear o deshabilitar XML-RPC en WordPress?

Existen algunas alternativas para bloquear o deshabilitar el XML-RPC de tu sitio web. 

Utilizando plugins

La primera forma y más sencilla es a través de un plugin. Existen muchos plugins con esta funcionalidad. Al momento de publicar este artículo, el que tiene mejor puntaje es el “Disable XML-RPC-API de Neatmarketing: 

Modificando el archivo functions.php de tu theme

Podés agregar lo siguiente en el archivo functions.php de tu theme. Tené en cuenta que este método, si bien deshabilita la funcionalidad del XML-RPC, no impide que se puedan realizar ataques de fuerza bruta contra tu sitio web:

// Deshabilitar el uso de XML-RPC
add_filter( 'xmlrpc_enabled', '__return_false' );

Modificando el archivo .htaccess (servidores Apache)

Para quienes tienen su sitio web WordPress alojado en servidores con Apache, la forma un poco más “complicada” y que requiere cierto conocimiento técnico, es agregando el siguiente código al archivo .htaccess de tu sitio web:

# Bloquear requests al archivo xmlrpc.php requests 
<Files xmlrpc.php> 
order deny,allow 
deny from all 
allow from xxx.xxx.xxx.xxx 
</Files>

Las xxx.xxx.xxx.xxx podés reemplazarlas por la IP a la que querés permitirle el acceso a través de XML-RPC.

Un dato importante sobre este archivo .htaccess: Es un archivo oculto que está ubicado en la raíz de tu sitio web, al igual que el archivo xmlrpc.php. Si cuando ingresás por FTP o cPanel no lográs verlo, tenés que habilitar la visualización de archivos ocultos.

Modificando el config de servidores Nginx

Si por el contrario tenés tu sitio web en WordPress alojado en un servidor que corre Nginx, entonces podés pegar el siguiente código en el config:

# Bloquear requests xmlrpc.php en nginx
location /xmlrpc.php {
    deny all;
}

Así que…

Recordá que si estás utilizando alguna plataforma que intercambie información con tu sitio web WordPress a través de XML-RPC o si utilizás el plugin Jetpack, entonces no bloquees este protocolo. Pero sino, es una buena medida para tener un sitio web más seguro.

En Experiencias Digitales sabemos cómo cuidar tu sitio web WordPress, ¡escribinos!

Actualizar WordPress

Actualizar WordPress

Actualizar WordPress no es una tarea difícil. En este post te contamos por qué es importante mantener actualizado WordPress y la forma en que recomendamos actualizar WordPress para que no falle, o estés listo si ocurre algún error.

¿Por qué es importante mantener WordPress actualizado?

WordPress es una plataforma que evoluciona día a día. El equipo que trabaja desarrollando WordPress se ocupa de agregar nuevas características y mejorar las existentes. También se encargan de corregir errores que pueden comprometer la seguridad o el funcionamiento de tu sitio web.

Por seguridad

La popularidad de WordPress hace que los sitios desarrollados en esta plataforma sean un blanco de ataque deseado por varios motivos. Desde robar información de usuarios, dejar fuera de servicio al sitio web completo, hasta utilizar los recursos del servidor donde alojás tu sitio web con otros fines, son algunos ejemplos de ataques que ocurren con frecuencia. Un sitio web en WordPress desactualizado deja una puerta abierta a los atacantes, para acceder a través de fallas que encuentren.

Por nuevas funcionalidades

Otro punto importante es poder utilizar nuevas funcionalidades que el equipo de desarrolladores de WordPress implemente en la plataforma. Tener acceso a las mejoras y modificaciones es un punto importante, sobre todo cuando se relacionan a optimización y velocidad del sitio web.

Por corrección de errores

El código con el cual funciona WordPress es complejo y muy grande. Es una plataforma que tiene más de 17 años de evolución (la primera versión fue lanzada el 27 de mayo de 2003). Es inevitable que en el código existan errores menores. Los desarrolladores ponen a disposición permanentemente correcciones a través de nuevas actualizaciones.

¿Por qué NO hay que actualizar WordPress automáticamente?

Cuando ingresás al panel de administración de WordPress, la plataforma se encarga de notificarte de las actualizaciones disponibles. Incluso con un solo click, podés actualizar WordPress a su última versión. 

Generalmente este proceso no trae complicaciones, pero si se modificó alguna forma de funcionamiento interno de WordPress y tus plugins o themes no se adaptaron a tiempo a ese cambio, tu sitio puede caerse o verse perjudicado en su funcionamiento. Incluso puede que el sitio web funcione correctamente desde el lado técnico, pero el frontend (lo que ven tus usuarios y dónde interactúan con tu negocio) puede que se vea afectado.

Ocurrió hace poco, con el lanzamiento de la versión 5.5 de WordPress, muchos sitios tuvieron innumerables inconvenientes, teniendo que realizar un downgrade de versión hasta que la corrección de la falla se puso a disposición del público.

Hay que tener en cuenta que por defecto, WordPress tiene establecido que las modificaciones menores y de seguridad se actualicen automáticamente, y deja a nuestra voluntad las modificaciones mayores. Esta característica puede ser habilitada o deshabilitada según creamos convenientes. Generalmente estas actualizaciones menores son sobre algún aspecto particular del código, y no modifica el «motor» de WordPress en sí, con lo cual aconsejamos dejarla activada tal cual viene por defecto.

Entonces, ¿cómo actualizar WordPress?

Siguiendo unos pasos metódicamente, es posible actualizar de una forma segura nuestro sitio en WordPress.

Primero, lo que hacemos en Experiencias Digitales es chequear que tanto el theme como los plugins reporten compatibilidad con la nueva versión.

Tenemos una réplica exacta de cada sitio web de nuestros clientes. En el sitio web réplica (llamado comúnmente “staging”), probamos que las actualizaciones funcionan correctamente, no solo desde el aspecto técnico sino también desde la experiencia de usuario. Un excelente plugin para lograr esto es WP Staging. Es importante que esta instancia «staging» sea configurada en el mismo servidor que el sitio web que está en «producción» (sitio web real). De esta forma, aseguramos que el entorno en el que se ejecutan ambos sitios web sean el mismo, y por lo tanto las pruebas que hagamos en uno serán más fiables para luego impactarlas en el otro.

Una vez que evaluamos el correcto funcionamiento del sitio web en la instancia «staging» con las actualizaciones implementadas, entonces realizamos un backup preventivo y completo del sitio web en producción como forma de tener un respaldo inmediato anterior a la actualización. Un plugin interesante para realizar backups es BackupBuddy de iThemes aunque hay varios más que cumplen la misma función.

Por último y asegurándonos de tener el backup completo, aplicamos la actualización en el sitio web en producción. Volvemos a chequear que el sitio funcione correctamente y que todo esté en su lugar.

En la documentación oficial de WordPress explican detalladamente el paso a paso para actualizar automáticamente o manualmente de versión.

Actualizar el núcleo de WordPress no tiene que ser un dolor de cabeza. Es un proceso metódico que, seguido paso a paso, garantiza que no produzca errores en el sitio web. 

Si querés que nos ocupemos del mantenimiento técnico de tus sitios y aplicaciones web en WordPress contactanos. Tenemos nuestros planes de mantenimiento y hosting de sitios WordPress de alto nivel. En Experiencias Digitales, somos expertos en WordPress y sabemos como cuidarlo.

La imagen de este post pertenece a BlogVault.