Una de las medidas básicas de seguridad en WordPress es ocultar la pantalla de acceso y/o registro de WordPress, para evitar ataques de fuerza bruta y, simplemente, ponérselo más difícil a los hackers.
El motivo
La causa por la que es importante ocultar la pantalla de acceso de WordPress es debido a que la mayoría de los hackers utilizan rastreadores que buscan direcciones del tipo /wp-login.php
o /wp-admin/
accesibles en las que poner en marcha sus máquinas automáticas de detección y prueba de usuarios y contraseñas.
Al ocultar tu pantalla de acceso por algo que no sea el estándar de WordPress te quitas de en medio a miles de estos atacantes vagos que usan aplicaciones para hackear instalaciones de WordPress.
La(s) solución(es)
Una solución muy común para el administrador de WordPress es utilizar plugins de seguridad como iThemes Security o All in One WP Security, que incluyen utilidades para ocultar la pantalla de acceso, y no es mala solución.
Pero lo que yo te propongo hoy es conseguir lo mismo sin plugins, por si no necesitas las otras tropecientas utilidades de los plugins de seguridad.
El código
Lo que vamos a hacer es crear una redirección de la pantalla de acceso de WordPress a una URL de nuestra elección. Para ello nos valdremos del archivo .htaccess
.
Búscalo en el directorio raíz de tu instalación de WordPress y ábrelo con tu aplicación favorita de FTP o desde el panel de tu alojamiento.
A continuación añade las siguientes líneas, mejor antes de donde están los rewrite de WordPress (#BEGIN WORDPRESS
):
# BEGIN Ocultar acceso WP RewriteRule ^milogin$ https://%{SERVER_NAME}/wp-login.php?key=123abc&redirect_to=https://%{SERVER_NAME}/wp-admin/index.php [L] RewriteCond %{HTTP_REFERER} !^https://%{SERVER_NAME}/wp-admin RewriteCond %{HTTP_REFERER} !^https://%{SERVER_NAME}/wp-login.php RewriteCond %{HTTP_REFERER} !^https://%{SERVER_NAME}/login RewriteCond %{QUERY_STRING} !^key=123abc RewriteCond %{QUERY_STRING} !^action=logout RewriteCond %{QUERY_STRING} !^action=lostpassword RewriteCond %{REQUEST_METHOD} !POST # END Ocultar acceso WP
Notas importantes
El código anterior es de ejemplo, así que hay cosas que debes cambiar:
- En la línea 2 debes cambiar
milogin
por el slug de tu URL de acceso personalizada (acceso
,entrada
, lo que quieras). La idea es que tu URL de acceso será a partir de aquí, o lo que hayas elegido tú, por ejemplo,
.
- En las líneas 2 y 7 debes cambiar la
key
con123abc
por otra cosa. Es una clave oculta que no verán los hackers. La única regla es usar lo mismo en ambas líneas y usar solo letras y números.
Y ya está. Guarda los cambios y comprueba que funciona. Si tras guardar ves un error 500 en tu web será que algo has puesto mal en el código, repásalo y modifícalo.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Wow, Fernando. Muchas gracias. Hace un par de semanas estuve buscando como esto, aunque al final lo solucioné con un plugin. Pero no me gusta del todo, porque, en caso de tengan que restablecer la contraseña, les redirige a esa pantalla de wp-login (en este caso, a wp-login.php?action=lostpassword). ¿Este código que comentas evita que puedan entrar ahí?
Estupendo articulo.Si señor.
Lo estoy probando y me funciona bien, pero no evita que se siga pudiendo entrar por la dirección wp-admin anterior. Seguramente estoy haciendo algo mal pero no veo qué.
es verdad yo también lo he probado, redirecciona bien pero no «bloquea» el wp-admin o el wp-login.php, que es la idea no?
No, la idea es la redirección inicial, si fuerzas consigues acceder, claro
Por si es del interés de alguien, a mi me pasa lo mismo que dicen abajo que no se elimina el accesos /wp-admin , yo he usado este simple código debajo de # Begin
Fácil: Añadir esto al archivo .htaccess :
RewriteRule ^banana$ [NC,L]
Ahora is your login page.
Es decir, en principio no hace falta tanto código.
Saludos!
Pero pongo eso, es verdad que ahora con banana logro entrar, pero si pongo wp-login también. Así que falta algo para que tenga algún mísero sentido.
No funciona, o sea puedo entrar con la dirección nueva, pero si no bloquea las estandards qué sentido tiene esto?
Alquien encontro la solución en 2022? O si la encontrais en 2023 avisarme porfa, no encuentro ninguna manera de bloquar el acceso a wp-login con codigo. Pense que al poner nuestra Key propia de 3 letras y 3 número sería suficiente. Gracias