Datos de clientes expuestos
en WordPress, sin hackeo

La versión corta: auditando el sitio WordPress de un cliente encontramos fichas con información médica de sus propios clientes accesibles para cualquier persona con un navegador. El sitio no había sido hackeado. Nadie robó una contraseña. Todo lo que hizo falta fue conocer los endpoints que WordPress deja públicos por defecto. De ese caso nació Open24 Security, un plugin de hardening que decidimos regalar — descarga directa, sin registro — porque la mayoría de los sitios WordPress y WooCommerce de Argentina están igual de expuestos y sus dueños no lo saben.

La historia

Hace un tiempo tomamos el mantenimiento de un sitio que no habíamos desarrollado nosotros. Parte de nuestro proceso al heredar un sitio es una auditoría técnica: rendimiento, actualizaciones pendientes, y una revisión de qué información expone el sitio hacia afuera.

El sitio guardaba fichas de clientes como contenido de WordPress — algo muy común: formularios que crean entradas, plugins de gestión que usan custom post types, sistemas de turnos. El problema: la REST API de WordPress publica por defecto el contenido de los tipos de datos marcados como públicos. Quien conociera la URL correcta de /wp-json/ podía leer todas las fichas, con datos médicos incluidos. Sin usuario, sin contraseña, sin dejar rastro.

No era una vulnerabilidad. No había ningún bug que reportar. WordPress estaba funcionando exactamente como está diseñado. Y eso es lo que lo hace peligroso: ningún escáner de malware lo iba a detectar, porque no hay malware.

Importante: en Argentina los datos de salud son datos sensibles protegidos por la Ley 25.326 de Protección de Datos Personales. Una exposición así no es solo un problema técnico — es un problema legal para el dueño del sitio.

Lo que WordPress y WooCommerce muestran por defecto

Estas son las puertas que un WordPress recién instalado deja abiertas. Ninguna es una "falla": son decisiones de diseño de la plataforma. Pero todas pueden usarse con mala intención:

QuéDóndeRiesgo
Lista de usuarios/wp-json/wp/v2/usersEntrega los nombres de usuario reales del sitio: la mitad del trabajo para un ataque de fuerza bruta.
Todo el contenido "público"/wp-json/Posts, páginas y custom post types públicos, en formato JSON listo para descargar masivamente. Acá estaban las fichas médicas.
Enumeración de autores?author=1, ?author=2Redirige a la URL del autor y revela el username, uno por uno.
XML-RPC/xmlrpc.phpPermite probar miles de contraseñas en una sola petición. El vector de fuerza bruta más usado contra WordPress.
Versión de WordPressMeta generator, ?ver=, RSSLe dice al atacante exactamente qué vulnerabilidades conocidas probar.
API de WooCommerce/wp-json/wc/v3/ y cabecerasMal configurada, puede responder a requests anónimos y delatar que el sitio es una tienda (objetivo valioso).

Probalo en tu propio sitio, ahora

No hace falta ser técnico. Abrí una ventana de incógnito y visitá estas dos URLs reemplazando el dominio por el tuyo:

  • tusitio.com.ar/wp-json/wp/v2/users — si ves una lista con nombres, tu sitio está regalando los usuarios del admin.
  • tusitio.com.ar/wp-json/ — si ves un índice gigante de rutas, cualquiera puede explorar qué datos expone tu sitio.

Si alguna de las dos respondió con datos, seguí leyendo.

Cómo lo solucionamos (y por qué hicimos un plugin)

Todo lo de la tabla se puede cerrar a mano: filtros en functions.php, reglas en el .htaccess, algún plugin puntual para cada cosa. Es lo que hacíamos sitio por sitio, hasta que el caso de las fichas médicas nos convenció de que necesitábamos una herramienta única, auditable y consistente para todos los sitios que administramos.

Así nació Open24 Security: un solo plugin con cada protección como un toggle independiente:

  • REST API: oculta la lista de usuarios, exige autenticación en endpoints sensibles, permite apagar el índice de /wp-json/ y bloquear endpoints individuales.
  • Login: URL de acceso personalizada (chau wp-login.php), límite de intentos por IP, bloqueo de usernames comunes y errores sin pistas.
  • Protocolos: XML-RPC deshabilitado, wp-cron.php externo bloqueado, enumeración por ?author= frenada.
  • Información: versión de WordPress oculta en el HTML, los assets y el RSS.
  • Headers de seguridad: X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy y HSTS opcional, sin tocar el servidor.
  • WooCommerce: API cerrada a requests anónimos y cabeceras de WooCommerce fuera del storefront.
  • Salt Shaker: rotación de las claves de wp-config.php con un click, para invalidar todas las sesiones.
Panel de configuración del plugin gratuito Open24 Security mostrando el hardening de la REST API de WordPress
El panel del plugin: cada protección es un toggle reversible

¿Por qué gratis?

Porque el problema es masivo y silencioso. Después de aquel caso revisamos decenas de sitios de tiendas WooCommerce argentinas: la enorme mayoría exponía la lista de usuarios y tenía XML-RPC activo. No por negligencia de nadie — simplemente nadie les había dicho que eso estaba ahí.

Transparencia total: el plugin lleva la firma de Open24 y al activarse nos manda un aviso con la URL del sitio (así sabemos cuánta gente lo usa). No recolecta ningún otro dato, no pide email, no tiene versión "premium" escondida. El código está sin ofuscar — podés abrirlo y leerlo.

Descargá Open24 Security gratis

Hardening completo para WordPress y WooCommerce. Descarga directa, sin registro. WordPress 5.5+ y PHP 7.4+.

Si preferís hacerlo a mano

El plugin no hace magia — automatiza lo que también podés configurar vos: deshabilitar XML-RPC desde el .htaccess, filtrar los endpoints REST con rest_endpoints, agregar los headers de seguridad en el servidor y limitar los intentos de login con cualquier plugin de esa categoría. Lo importante no es la herramienta: es cerrar las puertas. Elegí el camino que prefieras, pero cerralas.

Divulgación: Open24 Security es desarrollado y distribuido por nosotros. Es gratuito y lo usamos en los sitios que administramos. Si tu tienda maneja datos sensibles y querés una revisión profesional, también ofrecemos auditorías de seguridad completas.

También puede interesarte:

¡Hablemos por WhatsApp!