Avisos
Vaciar todo

Hosting WordPress 70% dto Dominios promo

Forzar contraseña segura en WordPress  

 
daniel.martin.alonso@gmail.com
 daniel.martin.alonso@gmail.com
Usuario experto

Buenos días,

¿Conocéis alguna forma de que WordPress fuerce (a los usuarios) a utilizar contraseñas seguras, en caso de que quieran cambiarla?

Un saludo,
Daniel.

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 22/08/2019 4:08 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniel.

Añade lo siguiente al final del archivo functions.php que encontras en wp-content -> themes -> tu_plantilla

function force_strong_passwords($errors, $update, $user_data) {
    $user_login = $user_data->user_login;
    $user_pass = $user_data->user_pass;
 
    if (!is_null($user_pass)) {
        if ( strtolower( $user_login ) === strtolower( $user_pass ) ) {
            $errors->add( 'my_distinct_user_pass', __( 'Username and password must be different', 'your_textdomain' ) );
        }
        if ( strlen( $user_pass ) add( 'my_pass_length', __( 'Password must be at least 8 characters', 'your_textdomain' ) );
        }
        if ( ! preg_match( '/[0-9]/', $user_pass ) ) {
            $errors->add( 'my_pass_numeric', __( 'Password must have at least 1 numeric character', 'your_textdomain' ) );
        }
        if ( ! preg_match( '/[a-z]/', $user_pass ) ) {
            $errors->add( 'my_pass_lowercase', __( 'Password must have at least 1 lower case character', 'your_textdomain' ) );
        }
        if ( ! preg_match( '/[A-Z]/', $user_pass ) ) {
            $errors->add( 'my_pass_uppercase', __( 'Password must have at least 1 upper case character', 'your_textdomain' ) );
        }
    }
}
add_action( 'user_profile_update_errors', 'force_strong_passwords', 0, 3 );

Este código lo que realiza es comprobar:

- El usuario y la contraseña no coincidan
- Que tenga como mínimo 8 caracteres
- Que al menos contenga 1 carácter numérico [0-9]
- Que al menos contenga 1 carácter alfabético en minúsculas [a-z]
- Que al menos contenga 1 carácter alfabético en mayúsculas [A-Z]

Si no se cumple alguna de estas condiciones mostrará un error y no deja actualizar la contraseña.

Nota: Recuerda descargar el archivo antes de añadir el código para tener una copia del original.

Un saludo

ResponderCitar
Respondido : 22/08/2019 4:47 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

daniel.martin.alonso@gmail.com
 daniel.martin.alonso@gmail.com
Usuario experto

Gracias Pepe.

El snippet funciona correctamente. Sin embargo, no previene el uso de contraseñas del tipo "123456aB".

La única forma sería desactivar el check de "confirmar el uso de contraseña insegura". Con el siguiente snippet se imposibilita que el usuario pueda utilizar contraseñas que WordPress no considere de nivel medio (al menos):

add_action('admin_head', 'no_weak_password_header');
function no_weak_password_header() {
    
    echo'
    	
    	.pw-weak{display:none!important}
    	document.getElementById("pw-checkbox").disabled = true;
    ';
}

Saludos.

ResponderCitar
Respondido : 23/08/2019 11:07 am