Interdire l’utilisation des pages admin et sécuriser son site wordpress (PHP)
Par arthur-and-ashes,
Publié le 9 juin 2020
Afin d’éviter tout piratage de son site wordpress, il est recommandé d’interdire l’accès à la partie admin à toute personne non autorisée. Voici comment gérer ses accès simplement, interdire la barre admin, et quelques autres paramètres de sécurité. Cela est très important si vous autorisez l’inscription de nouveaux utilisateurs.
Ici nous allons procéder à cas petits réglages sans utiliser de plugins. Utiliser le moins d’extensions possibles vous permet également de renforcer la sécurité de votre site wordpress. En effet, certaines possèdent des failles de sécurité et d’autres peuvent avoir des problèmes de compatibilité avec votre site ou les autres extensions.
Régler le rôle des nouveaux utilisateurs.
Premièrement, l’un des principaux réglages de votre site wordpress va vous permettre d’autoriser / d’interdire l’enregistrement de nouveaux utilisateurs. Autoriser l’enregistrement d’utilisateurs va notamment vous permettre d’authentifier ces nouveaux utilisateurs avant de leurs permettre de publier sur votre site. Par exemple, vous pouvez demander l’inscription et la connexion avant de poster un commentaire.
- activez l’option : Réglages > Généraux > Inscription : tout le monde peut s’enregistrer.
- Choisissez le rôle des nouveaux inscrits : Réglages > Général > Rôle par défaut des nouveaux utilisateurs.
Je vous recommande de choisir Abonné, Contributeur ou éventuellement Auteur. Par défaut sur wordpress, ces rôles ont accès à des fonctionnalités différentes. Fiez-vous à cette page très complète sur les rôles utilisateurs.
Bloquez l’espace administrateur.
Par défaut, seuls les Admins, les éditeurs et les auteurs ont accès à vos pages admin. Cependant, il est possible que vous souhaitiez bloquer cet accès à un maximum de personnes. Pour cela, nous allons rajouter une fonction dans le fichier function.php.
// disable access to wp-admin for non-administrators and non-editors function block_wp_admin_access() { if ( is_admin() && ! current_user_can( 'administrator' ) && ! current_user_can( 'editor' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { wp_redirect( home_url() ); exit; } } add_action( 'init', 'block_wp_admin_access' );
Ainsi, si un auteur souhaite se rendre sur l’espace d’administration, il sera renvoyé vers la page d’accueil. Cependant, il va toujours visualiser la barre d’administration. Je vais donc supprimer l’affichage de la barre d’administration.
Supprimer la barre d’admin en front-end par rôle.
Ici, je vais supprimer l’affichage de la barre administration sur toutes les pages de mon site (côté front-end).
function remove_admin_bar() { if (!current_user_can('administrator') && !current_user_can('editor') && !is_admin()) { show_admin_bar(false); } }