¿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!

Seguridad en sitios web

Seguridad en sitios web

La seguridad en sitios web es un tema crucial, sobre todo en la forma en la que utilizamos hoy la tecnología.

Cuando utilizamos la web, a través de navegadores o de dispositivos móviles, lo hacemos para buscar información, para pagar productos y servicios, para realizar trámites, para relacionarnos con otras personas, para entretenernos.

Cada vez que utilizamos algún servicio online, intercambiamos constantemente información, ya sea sobre nuestro dispositivo, sobre nuestra ubicación, datos de usuario y contraseña, datos de tarjetas de crédito, obras sociales, datos filiatorios, fotos y videos personales, entre tantos otros datos.

Nuestra información está por todos lados. Incluso cuando buscamos algo, aunque no enviemos datos sobre quién somos, «detectan» que somos nosotros y luego nos envían información sobre lo que buscamos, a modo de publicidad, sin que siquiera lo hayamos solicitado. Hoy en día, vivimos inmersos en un mundo digital, y que nuestra información esté vaya uno a saber por cuántos servidores, es inevitable. Por eso es importante conocer y tomar conciencia sobre la seguridad en sitios web.

Si somos propietarios de un sitio web, tenemos una gran responsabilidad

Cuando somos propietarios de un sitio web, somos responsables de las características y calidad de su contenido, de su correcto funcionamiento, de que para los usuarios sea fácil encontrar lo que buscan y lograr hacer lo que quieren hacer, y por sobre todo, cuidar los datos que nuestros usuarios comparten, implícita y explícitamente.

Recordemos que, aunque en nuestro sitio web no solicitemos datos, como por ejemplo nombre y apellido, email, usuario y contraseña, de todas formas se intercambian datos con los usuarios (por ejemplo a través de cookies, información sobre localización, sobre el dispositivo, etc.).

Tener un sitio web seguro requiere no sólamente tomar ciertas medidas en un momento determinado, sino también realizar un mantenimiento y actualización permanente, y tener planes de contingencia en caso de que algo ocurra.

Además, tener un sitio web seguro nos conviene

Hace un tiempo atrás, tener un sitio seguro era opcional. No se compartía tanta información entre usuario y servidor, no se guardaban preferencias, el usuario en definitiva era más «pasivo» a la hora de utilizar un servicio web.

Hoy en día, son los propios usuarios los que generan la mayor cantidad de contenidos a través del intercambio de información.

En pos de hacer de la web un lugar más seguro, Google, el gran buscador, incluyó en sus algoritmos de búsqueda una mejor posición para aquellos sitios que se adapten bien a dispositivos móviles, y que por sobre todo sean seguros.

Este es un motivo, y a la vez un incentivo más, para ser responsables con el manejo de datos e información en nuestro sitio web.

Google mejora la posición en las búsquedas de aquellos sitios que son seguros.

¿Y si tengo una tienda online?

En una tienda online, la información que se maneja es muy sensible. No sólo administramos usuarios y contraseñas de nuestros compradores, sino que también los datos de sus tarjetas de crédito o información sobre sus cuentas bancarias.

Imaginemos que nuestro sitio no es seguro. Si un hacker logra interceptar la comunicación cuando un usuario está enviando información de sus tarjetas de crédito, entonces este hacker podrá utilizar dicha información en beneficio propio. Esto no sólo perjudicaría al dueño de la tarjeta de crédito, sino que también a nosotros. Primero porque caería la imagen de nuestro negocio, y segundo porque podríamos vernos involucrados en un juicio por perjuicio.

¿Cómo sé si mi sitio web es seguro?

Hay varias medidas de seguridad para los sitios web. La más fácil de identificar y ver, incluso para aquellas personas sin conocimiento técnico, es en la barra del navegador.

Cuando ingresamos a un sitio web, y vemos su URL en nuestro navegador, debe comenzar con https:// como muestra la imagen a continuación:

Una de las tantas medidas de seguridad, es que nuestro sitio web tenga un certificado SSL.

Esta es una de las medidas de seguridad existentes que consiste en instalar un certificado SSL en nuestro sitio web. Este certificado sirve para encriptar la comunicación entre el navegador y el servidor. Si querés saber un poco más sobre certificados de seguridad leé esta entrada de Wikipedia.

Hay muchas otras medidas de seguridad a tener en cuenta. Por ejemplo, si la programación con la que está hecho el sitio web sigue las mejores prácticas de seguridad. Si el servidor tiene las configuraciones adecuadas en cuanto accesos, permisos, seguridad en sus bases de datos por citar sólo algunos. Si no hay malware o códigos incrustados por terceros, si el software está actualizado, etc.

¿Tu sitio web es seguro? Si querés que te ayudemos a tener un sitio web seguro, escribinos.