Comment prévenir les attaques par injection SQL WordPress (7 conseils)

Voulez-vous empêcher les attaques par injection SQL WordPress ?

L'injection SQL est une faille de sécurité que les pirates peuvent utiliser pour attaquer la base de données de votre site Web. Une fois cela fait, un attaquant peut lire vos données sensibles, les modifier et prendre le contrôle de l’intégralité de votre base de données.

Dans cet article, nous partagerons quelques conseils pratiques pour prévenir les attaques par injection SQL dans WordPress, étape par étape.

Prévenir les attaques par injection SQL WordPressPrévenir les attaques par injection SQL WordPress

Pourquoi empêcher les attaques par injection SQL 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 générer aucun contenu dynamique.

Cependant, une saisie utilisateur non autorisée, un logiciel obsolète ou la révélation d'informations sensibles peuvent entraîner des vulnérabilités en matière de sécurité et permettre aux pirates informatiques d'effectuer facilement des attaques par injection SQL.

Cette attaque cible votre serveur de base de données et ajoute du code ou des instructions malveillantes à votre SQL. Ce faisant, les pirates peuvent utiliser les informations sensibles stockées dans votre base de données, telles que les données des utilisateurs, à des fins d'usurpation d'identité, de piratage de compte, de fraude financière, etc.

Ils peuvent également modifier les entrées de la base de données ou l’autorisation du compte et effectuer des attaques DDOS, rendant difficile la visite de votre site Web 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 de votre site Web, ce qui nuirait à la croissance de votre petite entreprise.

Cela dit, examinons quelques conseils pratiques qui peuvent empêcher les attaques par injection SQL dans WordPress.

Note: Avant d'apporter des modifications à votre base de données par mesure préventive, nous vous recommandons de créer une sauvegarde de celle-ci. De cette façon, si quelque chose ne va pas, vous pouvez utiliser la sauvegarde pour le réparer. Pour plus de détails, consultez notre tutoriel sur la façon de sauvegarder manuellement une base de données WordPress.

1. Effectuez régulièrement des mises à jour du site et utilisez un pare-feu

Un moyen efficace de prévenir les attaques par injection SQL consiste à mettre régulièrement à jour votre site WordPress vers la dernière version. Ces mises à jour corrigent souvent des failles de sécurité, notamment des problèmes de logiciels de base de données, ce qui rend difficile l'attaque de votre site par les pirates.

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 le Tableau de bord » Mises à jour page.

Ici, cliquez simplement 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.

Installer les mises à jour WordPressInstaller les mises à jour WordPress

Pour plus d'informations, vous aimerez peut-être consulter notre guide du débutant sur la façon de mettre à jour WordPress en toute sécurité.

Une fois cela fait, vous pouvez également ajouter un pare-feu pour plus de sécurité. Cette fonctionnalité 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.

Pour cette fonction, nous vous recommandons Sucuri, qui est le meilleur logiciel pare-feu WordPress du marché. Il offre un pare-feu au niveau des applications, une prévention par force brute, ainsi que des services de suppression de logiciels malveillants et de listes noires, ce qui en fait un excellent choix.

Comment le pare-feu d'un site Web bloque les attaquesComment le pare-feu d'un site Web bloque les attaques

De plus, l’outil nous a aidé à bloquer environ 450 000 attaques WordPress sur notre site Web dans le passé.

Pour plus de détails, consultez notre guide complet de sécurité WordPress.

2. Cachez votre version WordPress

Par défaut, WordPress affiche le numéro de version actuelle 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 entraîner des menaces de sécurité et permettre aux pirates informatiques d’effectuer plus facilement des attaques par injection SQL WordPress.

Supprimer le numéro de version de WordPressSupprimer le numéro de version de WordPress

En effet, chaque version de WordPress possède ses propres vulnérabilités que les attaquants peuvent exploiter après avoir découvert votre version. Cela leur permettra d'ajouter des extraits de code malveillant à votre site via des 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 function.php.

add_filter('the_generator', '__return_empty_string');

Une fois cela fait, les pirates ne pourront plus trouver votre numéro de version WordPress via des scanners automatiques ou par tout autre moyen.

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 Code WP. Il s’agit du meilleur plugin d’extraits de code qui rend l’ajout de code personnalisé à votre site extrêmement 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. Changez le préfixe de la base de données 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 à modifier le préfixe de 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 via FTP. Après cela, ouvrez le fichier wp-config.php et recherchez le changement $table_prefix doubler. Ensuite, vous pouvez le modifier simplement par défaut wp_ à autre chose comme ceci : wp_a123456_.

$table_prefix  = 'wp_a123456_';

Ensuite, vous devez visiter le cPanel de votre compte d'hébergement Web. Pour ce tutoriel, nous utiliserons Bluehost, cependant, votre cPanel peut être un peu différent selon votre société d'hébergement Web.

Ici, passez à l'onglet « Avancé » et cliquez sur le bouton « Gérer » à côté de la section « PHPMyAdmin ».

Cliquez sur le bouton Gérer à côté de la section PHPMyAdminCliquez sur le bouton Gérer à côté de la section PHPMyAdmin

Cela ouvrira une nouvelle page dans laquelle vous devrez sélectionner le nom de votre base de données dans la colonne de gauche et passer à l'onglet « SQL » en haut.

Après cela, vous pouvez ajouter la requête SQL suivante dans la zone de texte.

Requête SQL dans phpMyAdminRequête SQL dans phpMyAdmin

N'oubliez pas de remplacer le préfixe de la base de données par celui que vous avez choisi lors de la modification 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 modifier le préfixe de la base de données WordPress pour améliorer la sécurité.

4. Valider les données utilisateur

Les pirates injectent généralement des attaques SQL sur votre site Web en utilisant des champs utilisés pour saisir les données utilisateur, comme les sections de commentaires ou les champs de formulaire dans les 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 utilisateur ne seront pas soumises sur votre site si elles ne suivent pas un format spécifique.

Par exemple, un utilisateur ne pourra pas soumettre son formulaire si le champ de l'adresse e-mail ne comporte pas le symbole « @ ». En ajoutant cette validation à la plupart de vos champs de formulaire, vous pouvez empêcher les attaques par injection SQL.

Validez votre champ emailValidez votre champ email

Pour ce faire, vous aurez besoin de Formidable Forms, qui est un plugin de création de formulaires avancé. Il est livré avec une option « Format de masque de saisie » dans laquelle vous pouvez 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 des champs de texte uniques.

Ajouter un format de numéro de téléphoneAjouter un format de numéro de téléphone

Si vous ne souhaitez pas valider les champs de votre formulaire, nous vous recommandons WPForms car il s’agit du meilleur plugin de formulaire de contact doté d’une protection complète contre le spam et du support Google reCAPTCHA.

Vous pouvez également ajouter des menus déroulants et des cases à cocher dans vos formulaires. Cela rendra difficile aux pirates informatiques d’ajouter des données malveillantes.

wpformswpforms

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'utilisateur

Une autre astuce pour empêcher les attaques par injection SQL WordPress est de limiter l’accès des utilisateurs à votre site Web.

Par exemple, si vous avez un blog multi-auteurs, vous aurez alors 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 administrateur complet à l'administrateur uniquement.

Vous pouvez restreindre tous les autres rôles d'utilisateur à des fonctions spécifiques dont ils auront 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 le logiciel gratuit Supprimer l'accès au tableau de bord brancher. Lors de l'activation, visitez simplement le Paramètres » Accès au tableau de bord page où vous pouvez décider quels rôles d'utilisateur ont accès au tableau de bord.

Limiter les paramètres d'accès au tableau de bordLimiter les paramètres d'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 fonctionnalités des rôles d'utilisateur dans WordPress.

De même, vous pouvez également limiter les auteurs à leurs propres publications dans votre zone d'administration pour plus de sécurité.

6. Créer des messages d'erreur de base de données personnalisés

Parfois, vos utilisateurs peuvent rencontrer une erreur de base de données sur votre site Web, qui peut afficher des informations importantes sur votre base de données, la rendant 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 devrez copier et coller le contenu suivant dans une application de bloc-notes et enregistrer le fichier sous « 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("[email protected]", "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>

Après cela, 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 rencontrent une erreur de base de données sur votre site Web, ils verront simplement un message d'erreur les informant du problème sans révéler aucune information sensible.

Page d'aperçu des erreurs de base de données personnaliséePage d'aperçu des erreurs de base de données personnalisée

De plus, le titre « Erreur de base de données » sera affiché dans l'onglet du navigateur Web.

Pour plus de détails, consultez notre tutoriel sur la façon d'ajouter une page d'erreur de base de données personnalisée dans WordPress.

7. Supprimez les fonctionnalités de base de données inutiles

Pour éviter les attaques par injection SQL, vous devez également essayer de supprimer toutes les fonctionnalités et tous les fichiers de base de données 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 de base de données inutiles, nous recommandons WP-Optimize. C'est un plugin étonnant qui supprime les tableaux inutiles, les révisions de publication, les brouillons, les commentaires supprimés, les publications supprimées, les pingbacks, les métadonnées de publication et bien plus encore.

Supprimer les fonctionnalités de base de données inutilesSupprimer les fonctionnalités de base de données inutiles

Il supprime tous les fichiers dont vous n'avez pas besoin et optimise votre base de données pour qu'elle devienne plus sécurisée et plus rapide. Pour plus de détails, consultez notre guide du débutant sur la façon d'optimiser votre base de données WordPress.

Bonus : utilisez 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 WPBeginner Pro Services.

Nous pouvons vous aider à identifier et à corriger toute autre faille de sécurité dont vous ignorez l'existence. De plus, si vous avez déjà fait face à une attaque par injection SQL, nos experts peuvent vous aider à contenir les dégâts et à récupérer vos systèmes.

Réparation de sites piratés par WPBeginner Professional ServicesRéparation de sites piratés par WPBeginner Professional Services

Vous pouvez également nous engager pour améliorer l'optimisation de la vitesse, la conception, le référencement de votre site, ou même 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 empêcher les attaques par injection SQL WordPress. Vous aimerez peut-être également consulter notre guide du débutant sur la gestion de bases de données WordPress et nos meilleurs choix pour les meilleurs plugins de bases de données WordPress.

Si vous avez aimé cet article, alors abonnez-vous à notre Chaîne Youtube pour les didacticiels vidéo WordPress. Vous pouvez également nous retrouver sur Twitter et Facebook.

Partagez cet article

Newsletter

Inscrivez-vous à notre newsletter pour profiter de toutes nos astuces !

Laissez une réponse

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