Guardada en Wordpress, publicada en - Página vista 12707 veces
WordPress login, todo lo que necesitas saber, para proteger y personalizar el login en WordPress. Si somos afortunados en disfrutar de la famosa plataforma de WordPress en español, tenemos que tener en cuenta que hay un alto riesgo de sufrir ataques, usuarios que se dedican a fastidiar a los demás.
Por eso aconsejamos proteger correctamente el archivo wp-login.php de nuestra instalación, también recomendamos contratar una empresa para la creación de backups online.
Recomendamos cambiar Login WordPress para que la seguridad de tu web sea superior y poder así prevenir los ataques malignos.
Hay diferentes técnicas para evitar hackeos. Nosotros recomendamos proteger el acceso mediante htaccess.
De esta manera tendremos una doble puerta para acceder a nuestro panel de administración. Para ello tenemos que conectar con nuestro FTP y editar el archivo .htaccess.
Al principio del archivo tenemos que añadir el siguiente código, recordad que tenéis que añadir la ruta correspondiente con vuestro servidor:
<Files wp-login.php>
AuthType Basic
AuthName «Restricted Password Protection»
AuthUserFile /var/www/vhosts/nombredominio.com/.htpasswd
Require valid-user
</Files>
Ahora tenemos que crear el archivo .htpasswd, para guardar el usuario y la contraseña de acceso, tenemos páginas web online donde nos pueden generar la contraseña encryptada, por ejemplo http://www.htaccesstools.com/htpasswd-generator/
admin:$apr1$G67vHz5Y$6..DiAj2FNtUs6yvUDiDG0
Hecho esto, cuando queramos acceder al administrador de WordPress, apache nos pedirá el usuario y la contraseña, después tendremos que identificarnos desde el login de WordPress.
Ahora ya hemos ampliado la seguridad de nuestra instalación, en otro post hablaremos de añadir otras medidas de seguridad para evitar que nos ataquen.
WordPress es una de las plataformas cms más populares y usadas en Internet.
Uno de sus puntos fuertes, es la facilidad de personalizar nuestro sitio, por ejemplo, podemos en la página de login podemos reemplazar el logo de WordPress por el nuestro, solo tenemos que añadir la siguiente función en el archivo functions.php de nuestra plantilla WordPress:
function mi_logo_personalizado() {
echo ‘<style type=»text/css»>
h1 a { background-image:url(‘.get_bloginfo(‘template_directory’).’/img/tu-logo.png) !important; }
</style>’;
}
add_action(‘login_head’, ‘mi_logo_personalizado’);
También podemos modificar todo el aspecto del login, si queremos hacer un cambio importante, yo recomiendo crear una página nueva en WordPress desde un nuevo archivo php, por ejemplo, creamos dentro del directorio del template con el siguiente nombre: tpl-login.php, y inicialmente ponemos lo siguiente:
<?php
/*
Template name: Login
*/
get_header();
?>
Con esto cargamos el header y llamamos a la página login, de esta manera en el administrador de páginas del WordPress, podemos crear una nueva página llamada login con la plantilla login. Ahora pongo el código fuente que muestra el formulario para identificarse, pongo html sin css, eso luego lo podéis retocar a vuestro gusto:
<div class=»col-12 col-sm-8 col-lg-6 fullwidth-split-text»>
<div class=»col-12 col-lg-8 align-self-center»>
<div class=»text-center mb-5″>
<h1 class=»h2 mb-2″>Identificarse</h1>
<span>Inicie sesión en su cuenta para continuar</span>
<?php
$login = (isset($_GET[‘login’]) ) ? $_GET[‘login’] : 0;
?>
<?php
if ( $login === «failed» ) {
echo ‘<p class=»login-msg»><strong>ERROR:</strong> Invalid username and/or password.</p>’;
} elseif ( $login === «empty» ) {
echo ‘<p class=»login-msg»><strong>ERROR:</strong> Username and/or Password is empty.</p>’;
} elseif ( $login === «false» ) {
echo ‘<p class=»login-msg»><strong>ERROR:</strong> You are logged out.</p>’;
}
?>
</div>
<form class=»mb-4″ method=»post» action=»/wp-login.php» id=»loginform» name=»loginform»>
<div class=»form-group»>
<label for=»signup-email»>E-mail</label>
<input class=»form-control form-control-lg» type=»text» name=»log» id=»user_login» placeholder=»Introducir E-mail» />
</div>
<div class=»form-group»>
<label for=»signup-password»>Contraseña</label>
<input class=»form-control form-control-lg» type=»password» name=»pwd» id=»user_pass» placeholder=»Introducir contraseña» />
</div>
<div>
<div class=»custom-control custom-checkbox»>
<input type=»checkbox» class=»custom-control-input» value=»agree» name=»agree-terms» id=»check-agree»>
<label class=»custom-control-label text-small» for=»check-agree»>Acepto la <a href=»#»>política de privacidad</a> del sitio.
</label>
</div>
</div>
<div class=»text-center mt-4″>
<input type=»hidden» value=»/pagina-de-destino» name=»redirect_to»>
<button type=»submit» class=»btn btn-lg btn-success»>Identificarse</button>
</div>
</form>
</div>
</div>
Como veis, tenemos un input hidden, donde podemos redireccionar al usuario a la url que nosotros queramos.
Si lo queremos hacer más profesional, y no queremos que los usuarios tengan que ir al wp-login.php, y solo puedan entrar desde la página login que hemos creado, tenemos que añadir el siguiente código en nuestro archivo functions.php de la plantilla WordPress.
function redirect_login_page() {
$login_page = home_url( ‘/login/’ );
$page_viewed = basename($_SERVER[‘REQUEST_URI’]);
if( $page_viewed == «wp-login.php» && $_SERVER[‘REQUEST_METHOD’] == ‘GET’) {
wp_redirect($login_page);
exit;
}
}
add_action(‘init’,’redirect_login_page’);
function login_failed() {
$login_page = home_url( ‘/login/’ );
wp_redirect( $login_page . ‘?login=failed’ );
exit;
}
add_action( ‘wp_login_failed’, ‘login_failed’ );
function verify_username_password( $user, $username, $password ) {
$login_page = home_url( ‘/login/’ );
if( $username == «» || $password == «» ) {
wp_redirect( $login_page . «?login=empty» );
exit;
}
}
add_filter( ‘authenticate’, ‘verify_username_password’, 1, 3);
De esta manera si o si, el usuario tendrá que identificarse desde la página login personalizada por nosotros.
Como veis queda mucho mejor entrar desde un login totalmente personalizado.
Por último, si solo queremos dar acceso al administrador de WordPress a los usuarios con el rol administrador añadimos lo siguiente en el functions.php:
add_action( ‘init’, ‘blockusers_wps_init’ );
function blockusers_wps_init() {
if ( is_admin() && ! current_user_can( ‘administrator’ ) ) {
wp_redirect( home_url() );
exit;
}
}
De momento esto es todo, ya hemos mejorado la seguridad del WordPress y también tenemos una página de login personalizada.
Publicado por Óscar Llorente
Creador de páginas web, con experiencia en diferentes campos en el mundo del desarrollo web.