Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
Seguridad WordPress

Evitar la enumeración de usuarios en WordPress parte 1

La enumeración de usuarios es una vulnerabilidad que podría ser utilizada por un atacante o un usuario malicioso para intentar obtener un listado de los usuarios de la plataforma y posteriormente utilizar dicha información para planificar y generar ataques de mayor impacto, como por ejemplo, ataques de averiguación de contraseñas por fuerza bruta o diccionario sobre usuarios existentes en el sistema.

Dicho de otro modo: si un atacante consiguiera averiguar un nombre de usuario, ya tendría el 50% de lo que necesita para acceder al panel de administración de nuestro sitio.

Hay dos formas de intentar averiguar el nombre de usuario de WordPress, por eso he dividido la entrada en dos partes.

 

Averiguar el usuario a través de la URL de Autor

Probablemente hayas configurado los enlaces permanentes para que sean amigables y conseguir un mejor posicionamiento SEO.

Si a la URL de tu sitio le añades el parámetro /?author=1 y existe un usuario con ID=1, notarás que te redirige a una URL del tipo misitio.es/author/miusuario/ donde miusuario es el nombre de usuario.

Autor permalink

WordPress almacena en base de datos el nombre de usuario en el campo user_login. Además almacena la versión sanitizada del mismo en el campo user_nicename. Es con éste último campo con el que construye el enlace amigable de autor que vemos en la imagen de arriba.

Bastaría ir probando con IDs diferentes para ir sacando los nombres de usuario que tenemos en BBDD. Incluso hay herramientas como WP Scan que automatizan este proceso realizando barridos y sacando un listado de usuarios válidos de nuestro sitio web.

Por esto es aconsejable cambiar la URL de autor en WordPress. Por defecto no se puede cambiar el nombre de usuario desde el back-end. Para ello debes acceder a la base de datos desde el panel de control de tu hosting y buscar la tabla {prefix}users. Selecciona tu usuario y cambia el campo user_nicename con el nombre que desees, siempre en minúsculas, sin espacios, sin acentos, y sin caracteres extraños.

Así podremos tener nuestro user_login diferente del user_nicename y evitar la enumeración de usuarios. Si lo prefieres, puedes usar el plugin Edit Author Slug que te permitirte cambiar el user_nicename entre otras cosas.

Hasta aquí hemos visto como despistar a un atacante malintencionado mostrando un user_nicename que no coincide con nuestro user_login. Si queremos bloquear la enumeración de usuarios podemos hacerlo a través del archivo .htaccess añadiendo estas líneas:

También podemos bloquear la enumeración de usuarios a través del archivo functions.php de nuestro tema añadiendo estas líneas:

Puede que también te interese

Site Icon, mucho más que un favicon
Site Icon, mucho más que un favicon
En la versión 4.3 de WordPress se introdujo una nueva característica: el Site Icon. Antes de esta versión teníamos que introducir el favicon manualmente, o…
Como desactivar la edición de plugins y temas desde WordPress
Como desactivar la edición de plugins y temas desde WordPress
Si has llegado hasta aquí desde un buscador probablemente sea porque alguien ha tocado donde no debería y algo se ha roto. WordPress como sabemos…
He olvidado, perdido o borrado mi usuario o contraseña, o ambos
He olvidado, perdido o borrado mi usuario o contraseña, o ambos
A quien no le ha ocurrido alguna vez que nos hemos olvidado o perdido nuestro usuario o contraseña, o ambos para acceder a un sitio…
Utiliza fuentes de sistema y mejora tu WPO
Utiliza fuentes de sistema y mejora tu WPO
Las fuentes dan un estilo característico a nuestra web. Los diseñadores suelen hacer uso de fuentes, o incluso algunos clientes tienen fuentes corporativas, como seña…