10 Astuces pour protéger mon site WordPress

16 mars 2023

Bien que l'utilisation d'un plugin de sécurité soit recommandé pour protéger votre site WordPress, je souhaitai vous partager 10 Astuces simples pour protéger votre site WordPress sans devoir installer d'extension supplémentaire.

1 - Changer l'URL de la page de connexion WordPress

Le code suivant modifie l'URL de la page de connexion par défaut pour la remplacer par une nouvelle adresse de votre choix :

function custom_login_url() {
return home_url('/nouvelle-url/');
}
add_filter('login_url', 'custom_login_url', 10, 2);

En ajoutant ce code dans le fichier functions.php de votre thème WordPress, vous changez l'URL de la page de connexion en /nouvelle-url/ (par exemple : https://www.votresite.com/nouvelle-url/).

Cette astuce peut renforcer la sécurité de votre site en rendant l'adresse de la page de connexion moins prévisible pour les attaquants potentiels.

Vous pouvez ajouter une condition supplémentaire

Vous pouvez mettre en place une condition pour s'assurer que si l'adresse de connexion demandée ne correspond pas à la nouvelle URL, l'utilisateur sera redirigé vers la page d'erreur 404 de votre site. Pour cela, insérez le code suivant dans le fichier functions.php de votre thème WordPress :

function custom_login_url() {
return home_url('/nouvelle-url/');
}
add_filter('login_url', 'custom_login_url', 10, 2);

function redirect_invalid_login_url() {
$requested_url = $_SERVER['REQUEST_URI'];
$login_url = '/nouvelle-url/';

if (strpos($requested_url, 'wp-login.php') !== false && $requested_url !== $login_url) {
wp_safe_redirect(home_url('/404'), 301);
exit;
}
}
add_action('init', 'redirect_invalid_login_url');

Ce code ajoute la fonction redirect_invalid_login_url() qui vérifie si l'URL demandée inclut wp-login.php et si elle ne correspond pas à la nouvelle URL de connexion que vous avez définie.

Si les conditions sont remplies, la fonction redirige l'utilisateur vers la page d'erreur 404 de votre site.

2 - Désactiver "REST API" pour les utilisateurs non connectés

Ce code, à placer dans le fichier "fonctions.php", permet de restreindre l'accès à l'API REST de WordPress aux utilisateurs connectés uniquement.

En d'autres termes, si quelqu'un essaie d'accéder aux données de votre site via l'API REST sans être connecté, il recevra un message d'erreur indiquant qu'il n'est pas autorisé à accéder à cette ressource.

Pour utiliser ce code, ajoutez-le simplement dans le fichier functions.php de votre thème WordPress. Une fois ajouté, seuls les utilisateurs connectés pourront accéder aux données de votre site via l'API REST, ce qui renforce la sécurité et la confidentialité des données de votre site.

add_filter('rest_authentication_errors', function ($result) {
if (!empty($result)) {
return $result;
}
if (!is_user_logged_in()) {
return new WP_Error('rest_not_logged_in', 'Vous n\'êtes pas autorisé à accéder à cette ressource.', array('status' => 401));
}
return $result;
});

L'API REST est une interface de programmation d'application qui permet la communication entre différentes parties d'un système en utilisant des requêtes HTTP. Dans le contexte de WordPress, l'API REST facilite l'accès et la manipulation des données du site, telles que les articles, les pages et les commentaires, de manière standardisée et indépendante du langage de programmation.

3 - Protéger le fichier wp-config.php

Voici comment protéger votre fichier wp-config.php en bloquant l'accès direct à ce fichier depuis le web :

Ouvrez ou créez un fichier .htaccess à la racine de votre site WordPress (généralement dans le même répertoire que le fichier wp-config.php).

Ajoutez le code suivant dans le fichier ".htaccess" :

<files wp-config.php>
order allow,deny
deny from all
</files>
  1. Enregistrez les modifications apportées au fichier .htaccess et téléchargez-le sur votre serveur, si nécessaire.

En suivant ces étapes, vous bloquerez l'accès direct au fichier wp-config.php pour tous les visiteurs, protégeant ainsi les informations sensibles qu'il contient.

Le fichier wp-config.php inclut des informations importantes, telles que les identifiants de connexion à la base de données et d'autres configurations clés de votre site WordPress. Assurer la sécurité de ce fichier est essentiel pour prévenir les attaques potentielles et les fuites d'informations.

4 - Désactiver les erreurs de connexion détaillées

Ajoutez le code suivant dans votre fichier functions.php pour masquer les erreurs spécifiques et désactiver les messages d'erreur détaillés lors de la connexion.

Ce code simplifie les messages d'erreur affichés lorsqu'un utilisateur tente de se connecter à l'interface d'administration de WordPress. En masquant les erreurs spécifiques, l'objectif principal est d'augmenter la sécurité et d'empêcher les attaquants de recueillir des informations utiles.

function no_wordpress_errors(){
return 'Erreur de connexion.';
}
add_filter('login_errors', 'no_wordpress_errors');

5 - Changer le préfixe des tables de la base de données

Lors de l'installation de WordPress, choisissez un préfixe de table unique (par défaut, il s'agit de wp_). Si vous avez déjà installé WordPress, vous pouvez modifier manuellement le préfixe des tables en utilisant phpMyAdmin ou un autre outil d'administration de bases de données.

6 - Sécuriser l'accès Admin WordPress via HTTP

Vous pouvez ajouter une couche supplémentaire de protection à votre site en mettant en place une authentification HTTP basique pour accéder à l'administration de WordPress. Pour cela, vous devez créer un fichier .htpasswd et le configurer dans votre fichier .htaccess.

Plus d'informations sur comment protéger l'accès à l'administration de WordPress via HTTP ici

Ces astuces sont un complément aux pratiques de sécurité standard mentionnées précédemment. Assurez-vous de les mettre en œuvre en plus des autres mesures de sécurité pour protéger votre site WordPress.

7 - Désactiver l'édition de fichiers WordPress Admin

Ce bout de code est à mettre dans "fonction.php" et permet d'améliorer la sécurité de votre site en désactivant la possibilité de modifier les fichiers des thèmes et plugins directement depuis l'interface d'administration de WordPress.

define('DISALLOW_FILE_EDIT', true);

Comment ça fonctionne ?

Lorsque vous définissez DISALLOW_FILE_EDIT sur true, les options d'édition de fichiers disponibles sous "Apparence, Éditeur de thèmes, Extensions, Éditeur de plugins" seront désactivées. Cela empêche les utilisateurs, même les administrateurs, de modifier les fichiers, thèmes et plugins directement depuis le tableau de bord WordPress.

L'utilisation de ce code est recommandée pour plusieurs raisons :

  1. Sécurité : Si un utilisateur malveillant parvient à accéder à votre tableau de bord WordPress en tant qu'administrateur, il ne pourra pas injecter du code malveillant dans vos fichiers de thèmes ou de plugins, car l'édition de fichiers sera désactivée.
  2. Prévention des erreurs : La désactivation de l'édition de fichiers depuis l'interface d'administration évite les erreurs, comme la suppression de code essentiel ou la modification accidentelle de fichiers, qui pourraient rendre votre site inutilisable.
Astuce : Si vous voulez temporairement autoriser l'édition des fichiers, changez simplement la valeur "true" en "false". Une fois que vous avez effectué vos modifications, n'oubliez pas de revenir à la valeur initiale en remplaçant "false" par "true".

8 - Bloquer l'accès direct aux fichiers PHP

Ajoutez le code ci-dessous dans le fichier .htaccess de votre site (et non pas dans functions.php)

Ce code est une directive de configuration Apache utilisée dans un fichier .htaccess pour renforcer la sécurité de votre site web. Il a pour but de bloquer l'accès direct à tous les fichiers PHP de votre serveur.

<Files *.php>
Order Deny,Allow
Deny from all
</Files>

Ce code est utile pour protéger des dossiers spécifiques, mais il ne doit pas être appliqué globalement sur l'ensemble du site afin d'éviter des problèmes avec les fonctionnalités et les plugins qui ont besoin d'accéder directement aux fichiers PHP.

  • Quand ne pas l'utiliser : Ne l'utilisez pas pour l'ensemble de votre site, car cela peut causer des problèmes de fonctionnement pour les plugins et les pages PHP qui nécessitent un accès direct.
  • Quand l'utiliser : Utilisez ce code pour protéger les dossiers contenant des fichiers sensibles ou des fichiers de configuration. Placez un fichier .htaccess avec ce code à l'intérieur du dossier que vous souhaitez protéger.

9 - Supprimer la version de WordPress dans le code source

Pour des raisons de sécurité, il est important d'empêcher que des individus malveillants découvrent aisément la version de WordPress que vous utilisez et exploitent d'éventuelles failles de sécurité connues.

En intégrant ce code au fichier functions.php de votre thème, vous demandez à WordPress de ne pas inclure les informations relatives à la version dans le code source de vos pages.

Ainsi, il devient plus difficile pour les pirates informatiques de cibler votre site en se basant sur la version de WordPress que vous employez.

remove_action('wp_head', 'wp_generator');

10 - Empêcher l'accès à la page de connexion WordPress aux utilisateurs non autorisés

Ce code PHP protège la page de connexion WordPress en vérifiant si l'accès provient d'une visite directe. Si c'est le cas, l'utilisateur est redirigé vers la page d'accueil du site pour empêcher l'accès non autorisé ou les tentatives de piratage.

function my_login_protection() {
if ($_SERVER['REQUEST_METHOD'] == 'GET' && $_SERVER['HTTP_REFERER'] == '') {
wp_safe_redirect(home_url());
exit();
}
}
add_action('login_init', 'my_login_protection');

Limiter le nombre de tentatives de connexion :

Vous pouvez installer un plugin comme "Limit Login Attempts Reloaded" pour limiter le nombre de tentatives de connexion.

Malgré ces astuces, il est important de suivre les meilleures pratiques pour sécuriser votre site WordPress, telles que :

  • Garder WordPress, les thèmes et les plugins à jour
  • Utiliser des mots de passe forts
  • Installer un plugin de sécurité tel que "Wordfence" ou "Sucuri"
  • Sauvegarder régulièrement votre site
  • Utiliser un hébergement sécurisé et de qualité

Enfin, n'oubliez pas de toujours faire une sauvegarde de vos fichiers et de votre base de données avant d'apporter des modifications à votre site.

Il est important de noter également que ces mesures de sécurité ne remplacent pas les bonnes pratiques générales, telles que l'utilisation de mots de passe forts, la limitation de l'accès à l'interface d'administration, et la mise à jour régulière des thèmes, des plugins et du cœur de WordPress.

Laisser un commentaire

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

Solution rapide, évolutive et exceptionnelle pour accompagner votre business en ligne.
cloud-syncearthbullhorn linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram