La gran virtud de WordPress es a su vez su gran defecto: su popularidad. Al ser tan utilizado, los ataques dirigidos a vulnerabilidades comunes son frecuentes. Si bien mantener el sitio actualizado y contar con un sistema de copias de seguridad son pasos fundamentales, cambiar la URL de wp-admin puede añadir una capa extra de seguridad a tu sitio.
¿Por Qué Cambiar la URL de wp-admin?
- Seguridad Aumentada: Al cambiar la URL de acceso al administrador, reduces las posibilidades de que los atacantes encuentren fácilmente la puerta de entrada a tu sitio.
- Prevención de Ataques de Fuerza Bruta: Los bots que intentan ingresar a tu sitio suelen buscar la URL estándar de wp-admin. Al cambiarla, dificultas estos intentos.
- Tranquilidad Adicional: Aunque no es una medida infalible, junto con otras prácticas de seguridad, contribuye a la tranquilidad del administrador del sitio.
Cómo Cambiar la URL de wp-admin
Paso 1: Redirigir wp-admin a una Nueva URL
Para redirigir la URL de wp-admin, añadimos el siguiente código al archivo functions.php
de tu tema:
function seguridad_admin() {
$clave = '?MICLAVE';
$url_pral = 'http://'.$_SERVER['HTTP_HOST'].'/'.'wp-login.php'.'?'.$_SERVER['QUERY_STRING'];
$mi_hosts = array('imacreste.com');
if (!isset($_SERVER['HTTP_HOST']) || !in_array($_SERVER['HTTP_HOST'], $mi_hosts)) {
header($_SERVER['SERVER_PROTOCOL'] . ' Error 404');
exit;
}
if (site_url('/wp-login.php'.$clave) == $url_pral) {
// URL coincide
} else {
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/');
}
}
add_action('login_head', 'seguridad_admin');
Paso 2: Solucionar Problemas de Recordar Contraseña
El código anterior tiene un inconveniente: deshabilita la función de recordar contraseña. Podemos solucionarlo con el siguiente código:
function contra_perdida($lostpassword_url, $redirect = "lostpassword") {
return home_url().'/wp-login.php?MICLAVE&action=' . $redirect;
}
add_filter('lostpassword_url', 'contra_perdida');
function redirigir_despues_recordar() {
if ($_SERVER['REQUEST_URI'] == '/wp-login.php?checkemail=registered') {
wp_redirect(home_url().'/wp-login.php?MICLAVE&checkemail=registered');
exit;
}
}
add_action('login_head', 'redirigir_despues_recordar');
Código completo a poner en functions.php
Aquí tienes el código completo que debes añadir a tu archivo functions.php
:
function seguridad_admin() {
$clave = '?MICLAVE';
$url_pral = 'http://'.$_SERVER['HTTP_HOST'].'/'.'wp-login.php'.'?'.$_SERVER['QUERY_STRING'];
$mi_hosts = array('imacreste.com');
if (!isset($_SERVER['HTTP_HOST']) || !in_array($_SERVER['HTTP_HOST'], $mi_hosts)) {
header($_SERVER['SERVER_PROTOCOL'] . ' Error 404');
exit;
}
if (site_url('/wp-login.php?'.$clave.'&checkemail=confirm') == $url_pral) {
return home_url().'/wp-login.php?checkemail=confirm';
}
if (site_url('/wp-login.php?'.$clave.'&action=lostpassword') == $url_pral) {
return home_url().'/wp-login.php?action=lostpassword';
}
if (site_url('/wp-login.php'.$clave) == $url_pral) {
// URL coincide
} else {
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/');
}
}
add_action('login_head', 'seguridad_admin');
function contra_perdida($lostpassword_url, $redirect = "lostpassword") {
return home_url().'/wp-login.php?MICLAVE&action=' . $redirect;
}
add_filter('lostpassword_url', 'contra_perdida');
function redirigir_despues_recordar() {
if ($_SERVER['REQUEST_URI'] == '/wp-login.php?checkemail=registered') {
wp_redirect(home_url().'/wp-login.php?MICLAVE&checkemail=registered');
exit;
}
}
add_action('login_head', 'redirigir_despues_recordar');
Conclusión
Cambiar la URL de wp-admin en WordPress es una medida simple pero efectiva para mejorar la seguridad de tu sitio. Aunque no sustituye otras prácticas de seguridad como mantener el sitio actualizado o realizar copias de seguridad regulares, proporciona una capa adicional de protección. Implementar este cambio requiere solo unos pocos pasos y puede ahorrar muchos problemas en el futuro.
Deja una respuesta