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

Seguridad WordPress: proteger el archivo wp-login.php

En una entrada anterior vimos cómo proteger el acceso a wp-admin. Vamos a ver ahora cómo proteger el archivo wp-login.php, situado en la raíz de nuestra instalación de WordPress. Éste archivo contiene el formulario de login para acceder a nuestro back-end o panel de administración de la web.

wp login

Es un archivo crítico en cuanto a seguridad ya que uno de los objetivos más importantes para cualquier atacante es el acceso al back-end de nuestro WordPress, por lo tanto protegiendo éste archivo aumentaremos la seguridad de nuestro sitio.

NOTA

Hay que tener en cuenta que en ciertas ocasiones podemos tener un área privada en nuestro front-end por lo que debemos dejar a los usuarios la posibilidad de que puedan iniciar sesión. La solución en este caso pasaría por crear un formulario de login personalizado.

 

Al lío. Vamos a proteger el archivo wp-login.php mediante contraseña. Agregaremos al fichero .htaccess de la raíz de nuestro sitio las siguientes líneas:

<Files wp-login.php> AuthName "Area Restringida" AuthType Basic AuthUserFile /home/USER/.htpasswds/.htpasswd AuthGroupFile /dev/null require valid-user </Files>

En el código anterior, /home/USER/.htpasswds/.htpasswd sería la ruta al archivo que contiene el usuario y contraseña de acceso, en este caso llamado .htpasswd. Es muy recomendable que este archivo se encuentre alojado fuera de la ruta donde se encuentran los archivos de la web, así evitaremos el acceso al mismo vía web.

Podemos generar un archivo .htpasswd directamente desde consola. Por ejemplo si usas xampp, dirígete desde la consola a /xampp/apache/bin y ejecuta esta línea:

htpasswd -cb .htpasswd <usuario> <contraseña>

Te habrá generado un archivo .htpasswd con tu usuario y contraseña encriptada, que podrás subir a la ruta que has establecido anteriormente en el .htaccess. También podemos obtener estos datos a través de un generador online.

Ahora si intentas acceder al archivo wp-login.php a través de tu navegador, verás que te solicita antes de nada el usuario y clave que hemos establecido.

Si dispones de una IP fija, otra alternativa sería restringir el acceso al archivo wp-login.php solo a determinadas direcciones IP. De esta manera sólo permites acceso a este archivo a las IPs que desees. Para ello, añade estas líneas al fichero .htaccess que hay en la raíz de tu sitio web:

<files wp-login.php> order deny,allow allow from XXX.XXX.XXX.XXX allow from YYY.YYY.YYY.YYY allow from ZZZ.ZZZ.ZZZ.ZZZ deny from all </files>

Con esto ya tendríamos el fichero wp-login.php capado excepto para las IPs que deseemos. Podemos añadir tantas líneas “allow from” como queramos.

Puede que también te interese

Theme Customization API: Cómo añadir nuestras propias opciones en el personalizador de WordPress
Theme Customization API: Cómo añadir nuestras propias opciones en el personalizador de WordPress
El personalizador de WordPress fue añadido en la versión 3.4, y te permite de una forma visual hacer y ver cómo quedan los cambios que…
Cómo agregar campos personalizados al perfil de usuario de WordPress
Cómo agregar campos personalizados al perfil de usuario de WordPress
WordPress nos da la opción de permitir que los usuarios se registren en nuestro sitio (en Ajustes => Generales => Cualquiera puede registrarse). Por defecto…
Seguridad WordPress: cambiar el usuario y contraseña periódicamente
Seguridad WordPress: cambiar el usuario y contraseña periódicamente
Una de los axiomas en seguridad es tener un usuario y contraseña seguros. No obstante, se recomienda cambiar la contraseña periódicamente o cada cierto tiempo…
Cómo eliminar automáticamente los enlaces por defecto en las imágenes dentro del editor de WordPress
Cómo eliminar automáticamente los enlaces por defecto en las imágenes dentro del editor de WordPress
WordPress dispone de un sistema potentísimo para administrar el contenido multimedia de tu sitio web. Es muy fácil subir archivos, imágenes, etc…y siempre las tendremos…