SeenSecure Help

🔐 WordPress Hardening

Endurece tu instalación de WordPress cerrando vectores de ataque: oculta wp-admin, protege archivos, asegura la base de datos y mucho más.

📊 Resumen de Protecciones

73%
8 de 11 protecciones activas — Nivel de endurecimiento
🔐
Ocultar wp-admin
✓ Active
🌐
XML-RPC
✗ Inactive
🔗
REST API
✓ Active
📁
Directory Listing
✓ Active
🛡️
Archivos Sensibles
✓ Active
🚫
PHP en Uploads
✗ Inactive
📄
Archivos Ocultos
✓ Active
🗄️
User Enumeration
✓ Active
🔍
WP Version
✗ Inactive
✏️
File Editor
✓ Active
💬
CAPTCHA Comments
✓ Active

Vista rápida del estado de cada protección de hardening. Las tarjetas en verde indican protecciones activas; en rojo, las que requieren atención.

🔐 Panel de Administración

Protege el acceso al panel de administración de WordPress cambiando la URL de login y ocultando wp-admin de los atacantes.

🔑 Ocultar URL de Login (wp-admin)

Cambia la URL de inicio de sesión predeterminada (/wp-admin, /wp-login.php) por una URL personalizada que solo tú conoces. Cualquier intento de acceso a la URL original devuelve un error 404, ocultando la existencia de wp-admin.

Slug Personalizado

Elige cualquier slug (ej: mi-login, acceso-admin, backend-seguro). Tu nueva URL de login será https://tusitio.com/mi-login/.

🔁 Redirección Automática

Cuando un usuario autenticado visita /wp-admin/, es redirigido automáticamente a tu slug personalizado sin interrupción.

🚨 URL de Restauración de Emergencia

Si te quedas bloqueado fuera del admin, puedes acceder a una URL de emergencia para desactivar al instante tanto "Ocultar wp-admin" como "Ocultar wp-login.php" y volver al login normal. No es una URL genérica ni adivinable: lleva una clave secreta única y aleatoria de 64 caracteres generada solo para tu sitio, con el formato:

https://tusitio.com/?ssc_emergency_restore=CLAVE_ALEATORIA_ÚNICA_DE_TU_SITIO

Copia tu URL real (con tu clave real ya incluida) desde la tarjeta "Ocultación del Área de Administración" del propio panel de Hardening, antes de activar cualquiera de las dos protecciones, y guárdala en un lugar seguro. Si alguna vez sospechas que esa URL se ha filtrado, puedes regenerar la clave con el botón "Regenerar" en esa misma tarjeta — la URL antigua deja de funcionar al instante.

⚠️ ADVERTENCIA CRÍTICA: Antes de activar el ocultamiento de wp-admin, haz una copia de seguridad completa de tu sitio y archivos. Un error en la configuración puede bloquear permanentemente tu acceso al panel de administración. La URL de emergencia (con tu clave real) es tu único salvoconducto.

🌐 APIs y Servicios

Controla el acceso a los servicios web de WordPress: XML-RPC y REST API. Deshabilitar o restringir estos servicios reduce la superficie de ataque.

📡 XML-RPC

Deshabilitar XML-RPC bloquea aplicaciones móviles, Jetpack, WooCommerce y otros servicios que dependen de este protocolo. Evalúa si tu sitio lo necesita antes de desactivarlo.

🔗 REST API

Restringe el acceso a la REST API solo a usuarios autenticados. Los endpoints públicos quedarán inaccesibles para visitantes anónimos, protegiendo datos de usuarios, posts y configuraciones.

⚠️ Impacto al Deshabilitar XML-RPC

  • Aplicaciones móviles: La app oficial de WordPress no podrá conectarse a tu sitio.
  • Jetpack: Muchas funcionalidades de Jetpack dejan de funcionar.
  • WooCommerce: Algunas pasarelas de pago y extensiones de envío usan XML-RPC.
  • Pingbacks/Trackbacks: Se deshabilitan completamente, lo cual es positivo para evitar ataques DDOS.
💡 Recomendación: Mantén la REST API restringida a usuarios autenticados. Para XML-RPC, desactívalo solo si no usas apps móviles, Jetpack o WooCommerce.

📁 Archivos y Directorios

Protege los archivos y directorios de tu instalación WordPress contra acceso no autorizado, ejecución de código malicioso y exposición de información sensible.

🚫 Directory Listing

Deshabilita el listado de directorios del servidor mediante la directiva Options -Indexes en .htaccess. Impide que los visitantes vean el contenido de directorios que no tienen un index.php.

🔒 Archivos Sensibles

Bloquea el acceso directo a archivos críticos como wp-config.php, .htaccess, error_log y otros archivos de configuración del sistema.

🚫 PHP en Uploads

Bloquea la ejecución de archivos PHP (.php, .phtml, .php5) dentro del directorio wp-content/uploads/. Previene que atacantes ejecuten shells maliciosas subidas como imágenes.

📄 Archivos Ocultos

Oculta archivos de instalación e información como readme.html, changelog.txt, license.txt y wp-config-sample.php. Estos archivos revelan la versión de WordPress y detalles del sistema.

🌐 Carpetas Externas a WordPress

Cualquier carpeta que viva en la raíz de tu hosting fuera de WordPress se sirve directamente desde el servidor, sin pasar nunca por WordPress ni por el firewall — el firewall no llega a verla. Esta protección hace que esas carpetas queden cubiertas por las mismas defensas que el resto de tu sitio: bloqueo de IPs, rate limiting, geo-bloqueo y modo DDoS.

⚠️ ADVERTENCIA CRÍTICA: Los cambios en .htaccess pueden provocar un error HTTP 500 si la sintaxis es incorrecta o si el servidor no permite ciertas directivas. Siempre haz una copia de seguridad de tu .htaccess actual antes de activar estas protecciones. Si el sitio falla, restaura el .htaccess original por FTP.
💡 Cómo funciona "Carpetas Externas": al activarla desde Protecciones → Archivos, SeenSecure escanea la raíz de tu sitio y te deja marcar qué carpetas (fuera de wp-admin, wp-content y wp-includes) proteger. No conviene activarla en carpetas de mucho tráfico: cada visita pasa por una comprobación de seguridad adicional antes de servir el contenido, igual que el resto de tu sitio, lo que añade una pequeña carga extra al servidor. SeenSecure aplica y revierte esta protección automáticamente: al desactivarla, desactivar el plugin o desinstalarlo, todo vuelve a su estado original sin que tengas que hacer nada.

🗄️ Base de Datos

Protege tu base de datos contra enumeración de usuarios y otros vectores de ataque que exponen información sensible sobre los usuarios registrados.

🚫 Deshabilitar Enumeración de Usuarios

WordPress expone los nombres de usuario a través de URLs como /?author=N. Un atacante puede cambiar el número N (1, 2, 3...) para descubrir todos los nombres de usuario registrados y luego usar esa información para ataques de fuerza bruta.

🔍 Cómo funciona el ataque

GET /?author=1 → Redirige a /author/admin/ GET /?author=2 → Redirige a /author/editor/ GET /?author=3 → Redirige a /author/subscriber/

El atacante obtiene los nombres de usuario y los usa para ataques de contraseña.

🛡️ Cómo lo bloquea SeenSecure

Devuelve un error 404 cuando se detecta un intento de enumeración por ?author=N o ?author_name=. También bloquea el endpoint de la REST API que expone nombres de usuario.

⚡ Recomendación: Mantén esta protección siempre ACTIVADA. Es una de las defensas más efectivas contra ataques de fuerza bruta dirigidos.

📡 Proteger Autor en Feeds (RSS/RDF/Atom)

Para qué sirve: además de las URLs ?author=N, hay otra vía de fuga de nombres de usuario que muchos sitios pasan por alto: los feeds RSS, RDF y Atom que WordPress genera automáticamente. Cada entrada del feed muestra el nombre público del autor — y si ese nombre público es idéntico al nombre de usuario con el que se accede al panel, cualquiera que lea el feed obtiene el username real sin necesidad de escanear nada.

Por qué esto facilita la fuerza bruta: un ataque de fuerza bruta necesita dos cosas — un nombre de usuario válido y probar contraseñas contra él. Sin el nombre de usuario, el atacante tendría que adivinar también eso, lo que multiplica el esfuerzo necesario. En cuanto consigue el username real por el feed, ya solo le queda un problema por resolver (la contraseña) en vez de dos, y puede lanzar el ataque directamente contra esa cuenta concreta.

🔍 Cuándo hay riesgo

Solo cuando el «nombre a mostrar públicamente» de una cuenta (Usuarios > Tu Perfil) es idéntico a su nombre de usuario de acceso. Muchos sitios lo dejan así sin darse cuenta, porque es el valor que WordPress rellena por defecto al crear la cuenta.

🛡️ Cómo lo protege SeenSecure

Comprueba, solo dentro de los feeds, si el nombre que se va a mostrar coincide con el username real de esa cuenta. Si coincide, muestra el nombre del sitio en su lugar. Si ya son distintos, no toca nada — el resto del sitio sigue mostrando el nombre de autor con normalidad.

Cómo activarla: SeenSecure > Protecciones > Base de Datos > Proteger Autor en Feeds (RSS/RDF/Atom). Activada por defecto, junto a la protección de ?author=N descrita arriba. Es un interruptor independiente — puedes tener una activada y la otra no, aunque lo recomendable es mantener ambas encendidas.

⚙️ Panel y Archivos

Configura opciones adicionales de hardening para cerrar vectores de ataque comunes relacionados con la exposición de información y la edición no autorizada.

🔍 Ocultar Versión de WordPress

Elimina el meta tag <meta name="generator" content="WordPress X.X" /> del HTML y de los feeds RSS. Los atacantes usan la versión para buscar vulnerabilidades conocidas específicas.

✏️ Deshabilitar Editor de Archivos

Deshabilita el editor de temas y plugins desde el panel de administración. Define la constante DISALLOW_FILE_EDIT como true en wp-config.php. Previene que atacantes con acceso admin modifiquen archivos PHP directamente.

🚫 Instalación de Plugins/Temas

Deshabilita la instalación, actualización y eliminación de plugins y temas desde el panel de administración. Útil en sitios administrados donde los cambios pasan por un proceso controlado.

🔗 Eliminar Meta Tags Generator

Elimina de tu HTML la etiqueta <meta name="generator"> que WordPress inserta automáticamente en <head> y en los feeds RSS con el número de versión exacto.

🔌 Seguridad de APIs

Protege XML-RPC y REST API contra ataques de amplificación DDoS, fuerza bruta y enumeración de usuarios.

🔒 Restringir REST API

Restringe el acceso a la REST API de WordPress solo a usuarios autenticados y controla qué endpoints están permitidos para prevenir reconocimiento.

👤 Deshabilitar REST API Users

Bloquea el endpoint /wp/v2/users para no autenticados, cerrando una vía de reconocimiento usada por atacantes para enumerar usuarios válidos antes de ataques dirigidos.

⚠️ Precaución: Deshabilitar la instalación de plugins/temas desde el admin puede ser frustrante para administradores no técnicos. Actívalo solo si tienes un proceso de deployment establecido.

💬 Comentarios

Protege el sistema de comentarios de WordPress contra spam automatizado y ataques de inyección mediante CAPTCHA inteligente y monitoreo de actividad.

🧩 CAPTCHA para Comentarios

Añade un desafío CAPTCHA en el formulario de comentarios para verificar que el visitante es humano. Disponible en tres modos:

👁️ Visual CAPTCHA

Muestra 4 imágenes (por ejemplo, coche, árbol, casa y flor) y el usuario debe seleccionar la correcta. No requiere escribir texto distorsionado.

🔢 Math CAPTCHA

Presenta una operación matemática simple (ej: 7 + 3 = ?). Fácil para humanos, difícil para bots. No requiere soporte de imágenes.

😀 Emoji CAPTCHA

Pide al usuario que seleccione el emoji correcto de una serie. Experiencia visual moderna y divertida para los visitantes.

📊 Panel de Estadísticas

El sistema muestra estadísticas en tiempo real sobre el rendimiento del CAPTCHA y los intentos de spam bloqueados:

🚫 Bloqueados Hoy

47

Intentos de spam bloqueados en las últimas 24 horas

✅ Tasa de Éxito

98.7%

Porcentaje de comentarios legítimos que pasan el CAPTCHA

📦 Total Bloqueados

12,843

Total de intentos de spam bloqueados desde la activación

💡 Consejo: El modo Math CAPTCHA es el más recomendado por su equilibrio entre seguridad y accesibilidad. No requiere que el usuario lea texto distorsionado y funciona incluso sin soporte de imágenes.

Preguntas Frecuentes

Me quedé fuera del panel tras ocultar wp-admin, ¿qué hago? Usa tu URL de Restauración de Emergencia (la que copiaste con tu clave única desde la tarjeta de Ocultación del Área de Administración) — desactiva al instante el ocultamiento para que puedas volver a entrar. Guárdala en un lugar seguro antes de activar la protección, no después: sin ella no hay otra forma de recuperarla salvo acceso directo al servidor.

Un plugin dejó de subir imágenes tras activar "Sin ejecución PHP en subidas" Esa protección impide que se EJECUTEN archivos PHP dentro de la carpeta de subidas, no que se suban archivos normales (imágenes, PDFs, etc.) — si un plugin legítimo deja de subir algo, revisa si intenta subir un formato ejecutable y no un archivo de contenido normal.

¿Puedo activar solo algunas protecciones de esta página y no todas? Sí, cada tarjeta del Resumen de Protecciones se activa/desactiva de forma independiente; no hace falta activarlas todas a la vez.

Desactivé XML-RPC y ahora Jetpack o mi app móvil de WordPress fallan Es el efecto esperado: XML-RPC es el protocolo que usan la app oficial de WordPress, buena parte de Jetpack y algunas pasarelas de pago/envío de WooCommerce. Si necesitas alguna de esas herramientas, vuelve a activarlo.