Sécuriser votre site WordPress contre les attaques par injection SQL est nécessaire pour sauvegarder vos données et conserver la confiance de vos internautes.
L’injection SQL est une technique courante utilisée par les pirates pour attaquer votre base de données. Une fois qu’ils y sont parvenus, les pirates peuvent lire vos données sensibles, les modifier et prendre le contrôle de l’ensemble de votre base de données.
Pour protéger votre site de cette menace, il est crucial de mettre en place des mesures de sécurité solides sur votre site.
Chez WPBeginner, nous prenons la sécurité très au sérieux et nous sommes allés au-delà pour protéger notre site contre les pirates et les logiciels malveillants. La plupart des pratiques de sécurité que nous recommandons contre les attaques par injection SQL sont des méthodes que nous avons nous-mêmes utilisées avec succès.
Dans cet article, nous allons partager quelques conseils pratiques pour prévenir les attaques par injection SQL dans WordPress, étape par étape.
Pourquoi prévenir les attaques d’injection SQL sur WordPress ?
SQL signifie Structured Query Language, qui est un langage de programmation qui communique avec la base de données de votre site WordPress. Sans cette fonctionnalité, votre site ne peut pas générer de contenu dynamique.
Cependant, la saisie non autorisée par l’utilisateur, un logiciel obsolète ou la divulgation d’informations sensibles peuvent entraîner une vulnérabilité de la sécurité et permettre aux pirates de réaliser facilement des attaques par injection SQL.
Cette attaque cible votre serveur de base de données et ajoute un code ou des instructions malveillantes à votre code SQL. Ce faisant, les pirates peuvent utiliser les informations sensibles stockées dans votre base de données, comme les données des utilisateurs, à des fins d’usurpation d’identité, de prise de contrôle de compte, de fraude financière, etc.
Ils peuvent également modifier les entrées de la base de données ou les autorisations du compte et effectuer des attaques DDoS, ce qui rend difficile la visite de votre site par les utilisateurs réels.
Cela peut nuire à la confiance des clients, avoir un impact négatif sur l’expérience utilisateur et diminuer le trafic sur le site, ce qui sera néfaste pour la croissance de votre petite entreprise.
Ceci étant dit, examinons quelques conseils pratiques pour prévenir les attaques par injection SQL dans WordPress. Voici un aperçu rapide de ce dont nous allons parler dans cet article :
- Perform Site Updates Regularly And Use a Firewall
- Hide Your WordPress Version
- Change the WordPress Database Prefix
- Validate User Data
- Limit User Role Access and Permissions
- Create Custom Database Error Messages
- Remove Unnecessary Database Functionality
- Bonus: Use WPBeginner Pro Services to Create a Secure Site
Remarque: Avant d’apporter des modifications à votre base de données à titre préventif, nous vous recommandons d’en créer une copie de sauvegarde. Ainsi, en cas de problème, vous pourrez utiliser la sauvegarde pour le résoudre. Pour plus de détails, consultez notre tutoriel sur la création manuelle d’une sauvegarde de la base de données de WordPress.
1. Effectuer régulièrement des mises à jour du site et utiliser un pare-feu
Un moyen efficace de prévenir les attaques par injection SQL consiste à mettre régulièrement votre site WordPress à jour avec la dernière version. Ces mises à jour corrigent souvent les failles de sécurité, y compris les problèmes liés aux logiciels de base de données, ce qui rend difficile l’attaque de votre site par des pirates informatiques.
Si vous utilisez une version obsolète de WordPress, nous vous recommandons d’activer les mises à jour automatiques pour la dernière version en visitant la page Tableau de bord » Mises à jour « .
Ici, il suffit de cliquer sur le lien » Activer les mises à jour automatiques pour toutes les nouvelles versions de WordPress « . Désormais, toutes les mises à jour majeures seront installées sur votre site dès leur sortie.
Pour plus d’informations, vous pouvez consulter notre guide du débutant sur la manière de mettre à jour WordPress en toute sécurité.
Une fois cette étape franchie, vous pouvez également ajouter un pare-feu pour plus de sécurité. Cette fonction agit comme un bouclier entre votre site et le trafic entrant et bloque les menaces de sécurité courantes, y compris les attaques SQL, avant qu’elles n’atteignent votre site web.
Si vous gérez une petite entreprise en ligne, nous vous recommandons Sucuri, qui est l’un des meilleurs logiciels de pare-feu WordPress sur le marché. Il offre un pare-feu au niveau de l’application, une prévention de la force brute, ainsi que des services de suppression des logiciels malveillants et des listes noires, ce qui en fait un excellent choix.
Nous avons une expérience directe de cet outil. Il nous a même aidé à bloquer 450 000 attaques WordPress sur notre site dans le passé.
Cela dit, Sucuri n’est peut-être pas assez puissant pour les grands sites à fort trafic. Dans ce cas, vous pouvez envisager Cloudflare, qui peut vous offrir des fonctionnalités de sécurité ainsi qu’un impressionnant réseau de distribution de contenu (CDN).
Si vous ne savez pas quelle option est la meilleure pour votre site, consultez notre article sur les raisons pour lesquelles nous sommes passés de Sucuri à Cloudflare ou notre comparatif Sucuri vs Cloudflare.
2. Cacher la version de WordPress
Par défaut, WordPress affiche le numéro de version du logiciel que vous utilisez sur votre site web. Par exemple, si vous utilisez WordPress 6.4, cette version sera affichée sur votre site pour le suivi.
Cependant, la visibilité publique de votre numéro de version peut créer des menaces pour la sécurité et permettre aux pirates de réaliser plus facilement des attaques par injection SQL de WordPress.
En effet, chaque version de WordPress présente des vulnérabilités qui lui sont propres et que les pirates peuvent exploiter après avoir découvert votre version. Cela leur permettra d’ajouter des extraits de code malveillant sur votre site par le biais de champs de saisie vulnérables.
Vous pouvez facilement supprimer le numéro de version de votre site en ajoutant l’extrait de code suivant à votre fichier functions.php.
add_filter('the_generator', '__return_empty_string');
Une fois que vous avez fait cela, les pirates ne seront pas en mesure de trouver votre numéro de version de WordPress par le biais de scanners automatiques ou de toute autre manière.
Note: Gardez à l’esprit qu’une erreur mineure lors de l’ajout de code peut rendre votre site web inaccessible. C’est pourquoi nous recommandons WPCode. C’est le meilleur plugin d’extraits de code qui rend l’ajout de code personnalisé à votre site super sûr et facile.
Pour plus de détails, consultez notre tutoriel sur la bonne façon de supprimer le numéro de version de WordPress.
3. Modifier le préfixe de la base de données de WordPress
Par défaut, WordPress ajoute le préfixe wp_ à tous les fichiers de votre base de données, ce qui permet aux pirates de planifier facilement une attaque en ciblant le préfixe.
Le moyen le plus simple de prévenir les attaques par injection SQL consiste à remplacer le préfixe de la base de données par défaut par quelque chose d’unique que les pirates ne pourront pas deviner.
Vous pouvez facilement le faire en connectant votre site web à l’aide du FTP. Ensuite, ouvrez le fichier wp-config.php et trouvez la ligne $table_prefix
. Vous pouvez alors remplacer le wp_
par défaut par quelque chose d’autre comme ceci : wp_a123456_
.
$table_prefix = 'wp_a123456_';
Ensuite, vous devez vous rendre dans le cPanel de votre compte d’hébergement. Pour ce tutoriel, nous utiliserons Bluehost. Cependant, votre cPanel peut être légèrement différent en fonction de votre hébergeur.
Passez à l’onglet « Avancé » et cliquez sur le bouton « Gérer » à côté de la section « PHPMyAdmin ».
Une nouvelle page s’ouvre, dans laquelle vous devez sélectionner le nom de votre base de données dans la colonne de gauche et passer à l’onglet « SQL » dans la partie supérieure.
Ensuite, vous pouvez ajouter la requête SQL suivante dans la zone de texte.
N’oubliez pas de changer le préfixe de la base de données pour celui que vous avez choisi lors de l’édition du fichier wp-config.php.
RENAME table `wp_comments` TO `wp_a123456_comments`;
RENAME table `wp_links` TO `wp_a123456_links`;
RENAME table `wp_options` TO `wp_a123456_options`;
RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
RENAME table `wp_RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
posts` TO `wp_a123456_posts`;
RENAME table `wp_terms` TO `wp_a123456_terms`;
RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;
RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
RENAME table `wp_users` TO `wp_a123456_users`;
Pour plus d’instructions, vous pouvez consulter notre tutoriel sur la façon de changer le préfixe de la base de données de WordPress pour améliorer la sécurité.
4. Valider les données de l’utilisateur
Les pirates injectent généralement des attaques SQL sur votre site en utilisant des champs permettant de saisir des données utilisateur, comme les sections de commentaires ou les champs de formulaires de contact.
C’est pourquoi il est important de valider toutes les données soumises sur votre blog WordPress. Cela signifie que les données des utilisateurs ne seront pas soumises sur votre site si elles ne respectent pas un format spécifique.
Par exemple, un utilisateur ne pourra pas soumettre son formulaire si le champ de l’adresse électronique ne contient pas le symbole « @ ». En ajoutant cette validation à la plupart des champs de votre formulaire, vous pouvez prévenir les attaques par injection SQL.
Pour ce faire, vous aurez besoin de Formidable Forms, qui est un plugin de construction de formulaire avancé. Il est livré avec une option « Input Mask Format » qui vous permet d’ajouter le format que les utilisateurs doivent suivre pour soumettre les données du champ du formulaire.
Vous pouvez ajouter un format spécifique pour les numéros de téléphone ou les champs de texte simple.
Si vous ne souhaitez pas valider les champs de votre formulaire, nous vous recommandons WPForms car c’est le meilleur plugin de formulaire de contact qui est livré avec une protection complète contre le spam et le support de Google reCAPTCHA.
Il vous permet également d’ajouter des menus déroulants et des cases à cocher à vos formulaires, ce qui rend difficile l’ajout de données malveillantes par les pirates.
Pour plus de détails, consultez notre tutoriel sur la création d’un formulaire de contact sécurisé dans WordPress.
5. Limiter l’accès et les autorisations des rôles d’utilisateurs
Un autre conseil pour prévenir les attaques par injection SQL de WordPress est de limiter l’accès des utilisateurs à votre site web.
Par exemple, si vous avez un blog à auteurs multiples, vous aurez plusieurs auteurs ainsi que des abonnés et des administrateurs. Dans ce cas, vous pouvez améliorer la sécurité du site en limitant l’accès complet à l’administrateur.
Vous pouvez limiter tous les autres rôles d’utilisateur aux fonctions spécifiques dont ils ont besoin pour effectuer leur travail. Cela réduira l’accès des utilisateurs à votre base de données et empêchera les attaques par injection SQL.
Vous pouvez le faire avec l’extension gratuite Supprimer l’accès au tableau de bord. Lors de l’activation, il vous suffit de vous rendre sur la page Paramètres » Accès au tableau de bord, où vous pouvez décider quels rôles d’utilisateurs ont accès au tableau de bord.
Si vous souhaitez limiter les utilisateurs en fonction de leurs capacités, vous pouvez consulter notre tutoriel sur la façon d’ajouter ou de supprimer des capacités aux rôles des utilisateurs dans WordPress.
De même, vous pouvez limiter les auteurs à leurs propres articles dans votre zone d’administration pour plus de sécurité.
6. Créer des messages d’erreur personnalisés pour la base de données
Il arrive que vos utilisateurs rencontrent une erreur de base de données sur votre site web, qui peut afficher des informations importantes sur votre base de données, ce qui la rend vulnérable aux attaques par injection SQL.
Dans ce cas, nous vous recommandons de créer un message d’erreur de base de données personnalisé qui sera affiché aux utilisateurs lorsqu’ils rencontreront cette erreur courante. Pour ce faire, vous devez copier et coller le contenu suivant dans un bloc-notes et enregistrer le fichier sous le nom « db-error.php ».
<?php // custom WordPress database error page
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 600'); // 1 hour = 3600 seconds
// If you wish to email yourself upon an error
// mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching");
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Database Error</title>
<style>
body { padding: 20px; background: red; color: white; font-size: 60px; }
</style>
</head>
<body>
You got problems.
</body>
Ensuite, connectez votre site à un programme FTP et téléchargez le fichier que vous venez de créer dans le répertoire /wp-content/ de votre site.
Désormais, lorsque les utilisateurs rencontreront une erreur de base de données sur votre site, ils verront un message d’erreur les informant du problème sans révéler d’informations sensibles.
De plus, le titre « Erreur de base de données » s’affichera dans l’onglet du navigateur web.
Pour plus de détails, consultez notre tutoriel sur l ‘ajout d’une page d’erreur de base de données personnalisée dans WordPress.
7. Supprimer les fonctions inutiles de la base de données
Pour prévenir les attaques par injection SQL, vous devez également essayer de supprimer toutes les fonctionnalités de la base de données et tous les fichiers dont vous n’avez pas besoin sur votre site web.
Par exemple, vous pouvez supprimer les tables inutiles, la corbeille ou les commentaires non approuvés qui peuvent rendre votre base de données vulnérable aux pirates.
Pour supprimer les fonctionnalités inutiles de la base de données, nous recommandons WP-Optimize. C’est un plugin étonnant qui supprime les tables inutiles, les révisions de messages, les brouillons, les commentaires mis à la poubelle, les messages supprimés, les pingbacks, les métadonnées des messages, et bien d’autres choses encore.
Il supprime tous les fichiers dont vous n’avez pas besoin et optimise votre base de données pour la rendre plus sûre et plus rapide. Pour plus de détails, consultez notre guide du débutant sur l’optimisation de la base de données de WordPress.
Bonus : Utiliser les services WPBeginner Pro pour créer un site sécurisé
Une fois que vous avez pris toutes les mesures préventives contre les attaques par injection SQL, vous pouvez également opter pour les services WPBeginner Pro.
Nous pouvons vous aider à identifier et à corriger toute autre faille de sécurité dont vous n’avez pas connaissance. De plus, si vous avez déjà subi une attaque par injection SQL, nos experts peuvent vous aider à limiter les dégâts et à récupérer vos systèmes.
Vous pouvez également faire appel à nous pour améliorer l’optimisation de la vitesse de votre site, son design, son référencement, ou même pour reconstruire complètement votre site WordPress existant, qu’il ait été piraté ou non.
Pour plus d’informations, consultez tous nos services professionnels WPBeginner.
Nous espérons que cet article vous a aidé à apprendre comment prévenir les attaques par injection SQL sur WordPress. Vous pouvez également consulter notre guide pour débutants sur la façon de vérifier les mises à jour de sécurité de WordPress ou notre guide ultime sur la sécurité de WordPress.
Si vous avez aimé cet article, veuillez alors vous abonner à notre chaîne YouTube pour obtenir des tutoriels vidéo sur WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.
Vous avez une question ou une suggestion ? Laissez un commentaire pour lancer la discussion.