🔐 Personnaliser et sĂ©curiser la page de connexion WordPress (wp-login.php)

La page de connexion WordPress est souvent la cible de tentatives de brute-force. Pourtant, peu d’utilisateurs la sĂ©curisent ou la personnalisent. Dans cet article, je te montre comment :

  • Modifier son apparence pour reflĂ©ter ton branding
  • Cacher ou renommer wp-login.php
  • Ajouter des protections anti-bot, bruteforce et spam
  • Et mĂȘme y intĂ©grer une couche de sĂ©curitĂ© supplĂ©mentaire avec du code

🎹 1. Personnaliser l’apparence de wp-login.php

➀ Modifier le logo WordPress

Ajoute ce code dans ton fichier functions.php (ou via un plugin comme Code Snippets) :

function mlebrun_custom_login_logo() {
    echo '
    <style type="text/css">
        body.login div#login h1 a {
            background-image: url(' . get_stylesheet_directory_uri() . '/images/logo-login.png);
            background-size: contain;
            width: 100%;
            height: 80px;
        }
    </style>';
}
add_action('login_enqueue_scripts', 'mlebrun_custom_login_logo');

🔁 CrĂ©e une image logo-login.png dans /wp-content/themes/ton-theme/images/.

➀ Changer l’URL du logo

function mlebrun_login_logo_url() {
    return home_url();
}
add_filter('login_headerurl', 'mlebrun_login_logo_url');

➀ Modifier le CSS de la page

function mlebrun_custom_login_styles() {
    echo '<style>
        body.login {
            background-color: #f5f5f5;
        }
        .login #loginform {
            border-radius: 10px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
        }
        .login label {
            font-weight: bold;
            color: #003559;
        }
    </style>';
}
add_action('login_enqueue_scripts', 'mlebrun_custom_login_styles');

đŸ›Ąïž 2. SĂ©curiser la page de connexion

🔒 A. Renommer wp-login.php

Utilise le plugin WPS Hide Login :

  • Installe-le depuis l’admin
  • Va dans RĂ©glages > GĂ©nĂ©ral
  • Change /wp-login.php par une URL personnalisĂ©e (ex. /connexion-admin-mlebrun)

Cela empĂȘche les bots d’accĂ©der Ă  l’URL par dĂ©faut.

âžĄïž Plugin : WPS Hide Login


🔐 B. Limiter les tentatives de connexion

Installe Limit Login Attempts Reloaded ou Loginizer :

wp plugin install limit-login-attempts-reloaded --activate

Configure le plugin :

  • 3 tentatives max
  • Blocage IP 20 min
  • Durcissement aprĂšs X tentatives

🧠 C. Ajouter un CAPTCHA invisible

Installe le plugin reCAPTCHA by BestWebSoft ou Login No Captcha reCAPTCHA.

Procédure :

  1. Crée des clés reCAPTCHA v2 ou v3 ici : https://www.google.com/recaptcha/admin
  2. Colle-les dans les réglages du plugin
  3. Active la protection sur la page de connexion

🔏 D. Forcer un mot de passe fort

Ajoute ce filtre dans functions.php pour imposer des mots de passe forts aux utilisateurs :

function mlebrun_enforce_strong_passwords($errors, $update, $user) {
    if (!$update && strlen($_POST['pass1']) < 12) {
        $errors->add('pass_too_short', 'Votre mot de passe doit contenir au moins 12 caractĂšres.');
    }
    return $errors;
}
add_filter('user_profile_update_errors', 'mlebrun_enforce_strong_passwords', 10, 3);

🔐 Bonus : Double authentification (2FA)

Utilise WP 2FA ou Two Factor Authentication :

  • Compatible Google Authenticator, Authy, etc.
  • Forçable pour les rĂŽles admins uniquement

âžĄïž Plugin : WP 2FA


đŸš« Bloquer l’accĂšs Ă  wp-login.php et wp-admin sauf IP

Si tu veux verrouiller l’accĂšs au backend Ă  certaines IP seulement, ajoute dans .htaccess :

<Files wp-login.php>
    Order Deny,Allow
    Deny from all
    Allow from 123.123.123.123
</Files>

Remplace 123.123.123.123 par ton IP publique. Tu peux en ajouter plusieurs.


đŸ§© Alternative : Page de connexion personnalisĂ©e avec Elementor

Avec Elementor Pro, tu peux :

  • CrĂ©er une page dĂ©diĂ©e de connexion
  • Masquer complĂštement wp-login.php
  • Ajouter du design, des redirections, des messages d’erreur custom

Utilise le widget “Formulaire” > Mode “Connexion”.

📎 Liens utiles


Commentaires:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *