🔐 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