Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coupe WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Comment prévenir les attaques d’injection SQL sur WordPress (7 conseils)

Note éditoriale : Nous percevons une commission sur les liens des partenaires sur WPBeginner. Les commissions n'affectent pas les opinions ou les évaluations de nos rédacteurs. En savoir plus sur Processus éditorial.

Voulez-vous prévenir les attaques par injection SQL de 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 qu’il y est parvenu, un pirate peut lire vos données sensibles, les modifier et prendre le contrôle de l’ensemble de votre base de données.

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

Prevent WordPress SQL Injection Attacks

Pourquoi prévenir les attaques d’injection SQL sur WordPress ?

SQL est l’abréviation de Structured Query Language (langage de requête structuré). Il s’agit d’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 web par les utilisateurs réels.

Cela peut nuire à la confiance des clients, avoir un impact négatif sur l’expérience des utilisateurs et diminuer le trafic de votre site web, ce qui est préjudiciable à la croissance de votre petite entreprise.

Ceci étant dit, examinons quelques conseils pratiques pour prévenir les attaques par injection SQL dans WordPress.

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, 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 publication.

Install WordPress updates

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.

Pour cette fonction, nous recommandons Sucuri, qui est le meilleur logiciel 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.

How website firewall blocks attacks

De plus, cet outil nous a aidés à bloquer environ 450 000 attaques WordPress sur notre site web dans le passé.

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

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 entraîner des menaces pour la sécurité et permettre aux pirates de réaliser plus facilement des attaques par injection SQL de WordPress.

Remove WordPress version number

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, mais votre cPanel peut être légèrement différent selon votre hébergeur.

Passez à l’onglet « Avancé » et cliquez sur le bouton « Gérer » à côté de la section « PHPMyAdmin ».

Click the Manage button next to the PHPMyAdmin section

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.

SQL query in phpMyAdmin

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 web en utilisant des champs qui servent à saisir des données utilisateur, comme les sections de commentaires ou les champs des 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.

Validate your email field

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.

Add hone number format

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.

Vous pouvez également ajouter des menus déroulants et des cases à cocher dans vos formulaires. Il sera ainsi plus difficile pour les pirates d’ajouter des données malveillantes.

wpforms

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 le plugin gratuit Remove Dashboard Access. Après l’activation, il vous suffit de visiter 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.

Limit the dashboard access settings

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 web, ils verront simplement un message d’erreur les informant du problème sans révéler d’informations sensibles.

Custom database error preview page

De plus, le titre « Erreur de base de données » s’affiche 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.

Remove unecessary database functionality

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.

WPBeginner Professional Services Hacked Site Repair

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 les débutants sur la gestion des bases de données WordPress et notre sélection des meilleurs plugins de base de données 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.

Divulgation : Notre contenu est soutenu par les lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons gagner une commission. Consultez comment WPBeginner est financé, pourquoi cela compte et comment vous pouvez nous soutenir. Voici notre processus éditorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

L'ultime WordPress Toolkit

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tous les professionnels devraient avoir !

Reader Interactions

Un commentaireLaisser une réponse

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

Laisser une réponse

Merci d'avoir choisi de laisser un commentaire. Veuillez garder à l'esprit que tous les commentaires sont modérés selon notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.