Forzar contraseña segura en WordPress  

 
Daniel
Trusted Member

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
Miembro Moderator

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

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar Testimonio
¿Has probado WpCenter?, es nuestro nuevo manager de WordPress desde el propio cPanel sin necesidad de acceder a tu administración, te permitirá configurar actualizaciones automáticas y mucho más.
Pruébalo accediendo a tu cPanel > Aplicaciones Webempresa > WpCenter
¡Gracias!.

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

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

Daniel
Trusted Member

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

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

Por favor Iniciar Sesión o Registro