Changer l’URL de la page login de WordPress

3 décembre 2024

Un sujet controversé

Le sujet est controversé : certains diront que changer l’URL de la page login n’est pas une bonne idée, cela encouragerait les attaquants à investiguer des vulnérabilités du côté des thèmes ou des extensions. Un autre argument mis en avant est que bruteforcer la page de login n’est jamais l’attaque la plus évidente, et c’est rarement par ce biais que les attaques aboutissent…

Et pourtant…

Cela étant dit, je considère la dissimulation de la page de login comme une bonne pratique en matière de sécurité, notamment si elle est combinée à d’autres protections faciles à mettre en oeuvre (ne pas avoir d’identifiant admin, rendre difficile la récupération de l’identifiant de l’administrateur, désactiver XML-RPC, désactiver les pages des auteurs …).

Modifier l’URL de login sans plugin

Voici quelques hooks que vous pouvez ajouter au fichier functions.php de votre thème, ou dans un plugin de snippets, ou en créant un plugin personnalisé.

PHP
// Définit une URL personnalisée pour la page de login
function custom_login_url($login_url, $redirect, $force_reauth) {
    return home_url('/my-custom-login', 'login');
}
add_filter('login_url', 'custom_login_url', 10, 3);

// Redirections
function custom_login_page() {
    if ($_SERVER['REQUEST_URI'] == '/my-custom-login') {
        require_once(ABSPATH . 'wp-login.php');
        exit();
    }
}
add_action('init', 'custom_login_page');

function redirect_default_login_urls() {
    if ($_SERVER['REQUEST_URI'] == '/wp-login.php' || $_SERVER['REQUEST_URI'] == '/wp-admin/') {
        // Redirige vers la page d'accueil
        wp_redirect(home_url());
        // Ou redirige vers une page 404 ou autre
        // wp_redirect(home_url('/404'));
        exit();
    }
}
add_action('init', 'redirect_default_login_urls');
Retour à l'accueil