Protege el login de WordPress del ataque de bots

Tu web continuamente está recibiendo el ataque de bots intentando entrar en ella mediante fuerza bruta (probando con diccionarios de contraseñas).

Si no te has dado cuenta de esto, revisa los logs del servidor y podrás ver las peticiones realizadas por estos bots.

Otra opción es instalar un plugin de WordPress como Limit Login Attempts Reloaded que te mostrará los intentos de inicio de sesión que recibe tu web a diario y te ayudará a protegerte de ello (bloqueando IPs y demás).

En este artículo, vamos a ver cómo podemos proteger el formulario de login de estos ataques. En lugar de usar más plugins y llenar nuestro WordPress de plugins, añadiremos esta protección directamente en el servidor mediante el archivo .htaccess.

Vamos a ello.

Paso 1.

En el explorador de archivos de cPanel (o mediante FTP), navega hasta el directorio raíz de tu web.

Crea un archivo con el nombre .htpasswd (incluye el punto inicial). Dentro de este archivo, necesitarás poner un nombre de usuario y una contraseña encriptada con el formato: usuario:contraseña. Genéralo con esta herramienta: Htpasswd Generator .

Paso 2.

Edita el archivo .htaccess y añade al final el siguiente código.

# BEGIN Protect WP Login
ErrorDocument 401 "Unauthorized Access"
ErrorDocument 403 "Forbidden"
<FilesMatch "wp-login.php">
AuthName "Authorized Access Only"
AuthType Basic
AuthUserFile /var/www/vhosts/tudomino.com/httpdocs/tudomino.com/.htpasswd
require valid-user
</FilesMatch>
# END Protect WP Login

Adapta el código anterior a tu caso particular. Solo necesitas cambiar el valor de AuthUserFile donde deberás indicar la ruta completa al archivo .htpasswd que has creado.

Tienes varias maneras de saber la ruta absoluta del directorio principal de tu web. Te propongo una sencilla. Crear un archivo PHP en la raíz del servidor con el nombre info.php y añade el siguiente código:

<?php
echo dirname(__FILE__);

Ahora llama a ese archivo desde la URL (tudomino.com/php.info) y te devolverá la ruta absoluta del directorio principal de tu web. Esta es la ruta que debes reemplazar en el código anterior.

👉  Instalación de n8n en un VPS mediante Docker

Y listo. Si ahora intentas hacer login en tu web, te aparecerá un nuevo formulario el cual te pedirá el usuario y contraseña que generaste para el archivo .htpasswd. Esto evitará bloqueará a la mayoría de bots impidiendo que accedan al formulario de login.

La contraseña que protege el login solo la tendrás que introducir una vez. Las siguientes veces ya estará guardada y directamente te aparecerá la página de login de WordPress.

Ten en cuenta que este método no está diseñado para proporcionar un alto nivel de seguridad, solo es una capa más de seguridad con el propósito de prevenir que los bots y los usuarios puedan acceder directamente al formulario de inicio de sesión de WordPress.

👇Tu comentario