Comment empêcher les injections SQL ? (Guide complet 2020) - MalCare
Publié: 2023-04-19Êtes-vous préoccupé par les attaques par injection SQL sur votre site Web ? Si vous lisez ceci, vous connaissez peut-être déjà les conséquences de l'attaque. Dans cet article, vous apprendrez les moyens simples d'empêcher les injections SQL .
Les injections SQL peuvent permettre à un pirate de pirater votre site WordPress et d'en contrôler l'accès. À partir de là, ils peuvent rediriger votre trafic, voler des données confidentielles, injecter des liens de spam, manipuler les résultats de recherche avec des caractères japonais et afficher des publicités pour des produits illégaux. Ce type d'attaque peut causer des dommages irréparables à votre site et à votre entreprise.
Heureusement, les injections SQL peuvent être évitées si vous prenez les bonnes mesures de sécurité. Dans ce guide, nous abordons les injections SQL et discutons en profondeur des mesures efficaces pour les prévenir et protéger votre site WordPress.
TL; DR : Vous pouvez empêcher les injections SQL sur votre site WordPress en utilisant un plugin de sécurité fiable. Installez MalCare et le plugin analysera et défendra automatiquement votre site contre de telles attaques.
[lwptoc skipHeadingLevel=”h1,h3,h4,h5,h6″ skipHeadingText=”Réflexions finales”]
Que sont les attaques par injection SQL ?
Tous les sites WordPress ont généralement des zones de saisie qui permettent à un visiteur de saisir des informations. Il peut s'agir d'une barre de recherche de site, d'un formulaire de contact ou d'un formulaire de connexion .
Dans un formulaire de contact, un visiteur saisirait ses données telles que son nom, son numéro de téléphone et son adresse e-mail et les soumettrait à votre site.
Ces données sont envoyées à la base de données MySQL de votre site Web. Il est traité et stocké ici.
Désormais, ces champs de saisie nécessitent des configurations appropriées pour garantir que les données sont vérifiées et nettoyées avant d'entrer dans votre base de données. Par exemple, une vulnérabilité du formulaire de contact est qu'il ne devrait accepter que des lettres et des chiffres. Il devrait idéalement ne pas accepter de symboles. Désormais, si votre site accepte des données via ce formulaire, un pirate peut en profiter et insérer une requête SQL malveillante telle que :
txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?
txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?
Les pirates ciblent les sites Web qui ont des mesures de sécurité faibles ou des vulnérabilités qui leur facilitent l'accès. D'après notre expérience, les plugins et les thèmes développent souvent des vulnérabilités et les pirates en sont bien conscients. Ils rôdent constamment sur Internet à la recherche de sites utilisant des plugins et des thèmes vulnérables.
Pour expliquer cela, nous allons utiliser un exemple de scénario. Supposons que M. A utilise un plugin "Formulaire de contact" pour alimenter un formulaire sur la page de contact de son site Web. Supposons qu'une vulnérabilité d'injection SQL a été trouvée dans ce plugin dans la version 2.4 et que les développeurs l'ont corrigée et ont publié une version mise à jour 2.4.1.
Lors de la publication, les développeurs révèlent la raison de la mise à jour rendant la faille de sécurité publique. Cela signifie que les pirates savent qu'il existe une faille de sécurité dans la version 2.4 du plugin Contact Form.
Maintenant, Mr.X retarde l'installation de la mise à jour de quelques semaines car il n'y a tout simplement pas le temps d'exécuter la mise à jour. C'est là que les choses tournent mal.
Une fois que les pirates ont découvert les vulnérabilités, ils exécutent des programmes ou utilisent des scanners de vulnérabilité qui parcourent Internet et trouvent des sites Web utilisant une version particulière d'un plugin/thème.
Dans ce cas, ils rechercheront des sites Web à l'aide du formulaire de contact 2.4. Une fois qu'ils auront trouvé le site, ils connaîtront la vulnérabilité Web exacte, ce qui leur facilitera grandement le piratage. Dans ce cas, ils exploiteront la faille d'injection SQL et pénétreront dans votre site.
Types d'injections SQL
Les pirates utilisent deux types d'injections SQL :
1. Injection SQL classique – Lorsque vous visitez un site Web, votre navigateur (comme Chrome ou Mozilla) envoie une requête HTTP au serveur du site Web pour afficher le contenu. Le serveur Web récupère le contenu de la base de données du site et le renvoie à votre navigateur. C'est ainsi que vous pouvez afficher le front-end d'un site Web.
Désormais, la base de données de votre site Web contient toutes sortes de données, y compris des données confidentielles telles que les détails du client, les informations de paiement, les noms d'utilisateur et les mots de passe. Votre base de données doit être configurée pour publier uniquement les données frontales. Toutes les autres données confidentielles doivent être protégées. Mais si ces contrôles de sécurité des applications ne sont pas en place, les pirates en profitent.
Dans une attaque par injection SQL classique, les pirates envoient des requêtes malveillantes à votre base de données en récupérant les données dans leur navigateur. Mais ils utilisent des chaînes de requête pour demander des informations sensibles telles que les identifiants de connexion de votre site Web. Si vous n'avez pas protégé ces informations, elles seront envoyées au pirate. De cette façon, ils peuvent mettre la main sur vos informations de connexion et pénétrer dans votre site. Les attaquants peuvent également utiliser des instructions préparées pour exécuter des instructions de base de données identiques ou similaires à plusieurs reprises avec une grande efficacité.
2. Injection SQL aveugle – Dans ce cas, le pirate injecte des scripts malveillants via des champs de saisie sur votre site Web. Une fois qu'il est stocké dans votre base de données, ils l'exécutent pour faire toutes sortes de dégâts, comme modifier le contenu de votre site ou même supprimer l'intégralité de votre base de données. Dans ce cas, ils peuvent également utiliser les scripts malveillants pour obtenir des privilèges d'administrateur.
Les deux scénarios peuvent avoir un impact dévastateur sur votre site Web et votre entreprise. Heureusement, vous pouvez empêcher de telles attaques en prenant les bonnes mesures de sécurité et de validation des entrées sur votre site Web.
Étapes pour prévenir les attaques par injection SQL
Pour prévenir les attaques par injection SQL, vous devez effectuer une évaluation de la sécurité de votre site Web. Voici deux types de mesures que vous pouvez prendre pour prévenir les attaques SQL - certaines sont simples et d'autres sont complexes et techniques.
Mesures préventives faciles
- Installer un plugin de sécurité
- N'utilisez que des thèmes et des plugins de confiance
- Supprimez tout logiciel piraté sur votre site
- Supprimer les thèmes et plugins inactifs
- Mettez régulièrement à jour votre site Web
Mesures techniques préventives
- Modifier le nom de la base de données par défaut
- Contrôler les entrées sur le terrain et les soumissions de données
- Renforcez votre site WordPress
Commençons.
Mesures préventives simples contre les attaques par injection SQL
1. Installez un plugin de sécurité
L'activation d'un plugin de sécurité de site Web est la première étape à suivre pour protéger votre site Web. Les plugins de sécurité WordPress surveilleront votre site et empêcheront les pirates de s'introduire.
Il existe de nombreux plugins parmi lesquels choisir, mais en fonction de ce qu'il a à offrir, nous choisissons MalCare. Le plugin mettra automatiquement en place un pare-feu d'application Web pour défendre votre site contre les attaques. Les tentatives de piratage sont identifiées et bloquées.
Ensuite, le scanner de sécurité du plugin analysera votre site en profondeur chaque jour. En cas de comportement suspect ou d'activité malveillante sur votre site, vous serez immédiatement alerté. Vous pouvez agir et réparer votre site instantanément avec MalCare avant que Google n'ait la possibilité de mettre votre site sur liste noire ou que votre fournisseur d'hébergement ne décide de suspendre votre site.
2. Mettez régulièrement à jour votre site Web
Comme nous l'avons mentionné dans notre exemple d'injection SQL plus tôt, lorsque les développeurs trouvent des failles de sécurité dans leur logiciel, ils le corrigent et publient une nouvelle version qui contient le correctif de sécurité. Vous devez mettre à jour vers la nouvelle version afin de supprimer la faille de votre site.
Nous vous suggérons de consacrer du temps une fois par semaine à la mise à jour de votre installation principale, de vos thèmes et de vos plugins WordPress.
Cependant, si vous constatez qu'une mise à jour de sécurité est publiée, installez-la immédiatement.
3. N'utilisez que des thèmes et des plugins de confiance
WordPress est la plate-forme la plus populaire pour créer des sites Web et c'est en partie à cause des plugins et des thèmes qui le rendent facile et abordable. Mais parmi la pléthore de thèmes et de plugins disponibles, vous devez choisir avec soin. Vérifiez les détails du plugin tels que le nombre d'installations actives, la date de la dernière mise à jour et la version avec laquelle il a été testé.
Nous vous recommandons de les télécharger à partir du référentiel WordPress. Pour tous les autres thèmes et plugins, vous devez effectuer des recherches appropriées pour vérifier qu'ils sont dignes de confiance. En effet, certains thèmes et plugins tiers peuvent être conçus de manière malveillante par des pirates. Il peut également être mal codé, ce qui l'ouvre à des vulnérabilités.
4. Supprimez tout logiciel piraté de votre site
Les thèmes et plugins piratés ou annulés sont attrayants. Il vous donne accès gratuitement à des fonctionnalités premium. Mais malheureusement, ceux-ci sont généralement livrés avec des logiciels malveillants préchargés. Les logiciels piratés sont un moyen facile pour les pirates de distribuer leurs logiciels malveillants.
Lorsque vous l'installez, le logiciel malveillant s'active et infecte votre site. Il est préférable de rester à l'écart de ces logiciels.
5. Supprimer les thèmes et plugins inactifs
Il est courant d'installer un plugin et de l'oublier complètement pendant des années. Mais cette habitude peut exposer votre site aux pirates. Plus vous avez installé de plugins et de thèmes sur votre site, plus il y a de chances que des vulnérabilités apparaissent et que des pirates en profitent.
Nous vous suggérons de ne conserver que les plugins et les thèmes que vous utilisez. Supprimez le reste et rendez votre site plus sécurisé. Analysez également régulièrement vos thèmes et plugins existants.
Mesures techniques préventives
Ces mesures peuvent nécessiter un peu plus de connaissances sur le fonctionnement interne de WordPress. Cependant, de nos jours, il existe un plugin pour tout. Vous n'avez donc pas à vous soucier des complexités liées à la mise en œuvre de ces mesures. Nous simplifions les choses !
1. Modifier le nom de la table de base de données par défaut
Votre site WordPress est composé de fichiers et d'une base de données. Dans votre base de données, il y a 11 tables par défaut. Chaque table contient diverses données et configurations. Ces tables sont nommées avec un préfixe 'wp_'. Ainsi, le nom des tables peut être wp_options, wp_users, wp_meta. Vous obtenez la dérive.
Ces noms sont les mêmes sur tous les sites WordPress et les pirates le savent. Les pirates savent quelle table stocke quel type de données. Lorsque les pirates insèrent des scripts malveillants sur votre site Web, ils savent où le script serait stocké. En utilisant une méthode simple, ils peuvent exécuter des commandes SQL pour exécuter des activités malveillantes.
Mais si vous changez le nom de la table, cela peut dissuader les pirates de trouver où se trouvent les scripts. Ainsi, lorsque des pirates tentent d'injecter des codes SQL dans vos tables de base de données, ils ne seront pas en mesure de déterminer le nom de la table.
Vous pouvez le faire en utilisant un plugin comme Change Table Prefix ou Brozzme. Installez simplement l'un d'entre eux sur votre site et suivez les étapes.
Vous pouvez également le faire manuellement en éditant votre fichier wp-config. Un mot d'avertissement - un léger faux pas ici pourrait entraîner des erreurs de base de données et des dysfonctionnements du site. Effectuez une sauvegarde avant de continuer.
- Accédez à votre compte d'hébergement > cPanel > Gestionnaire de fichiers.
- Ici, accédez au dossier public_html et faites un clic droit sur le fichier wp-config.
- Sélectionnez Modifier et recherchez le code suivant
« $table_prefix = 'wp_' ; » - Remplacez-le par -
"$table_prefix = 'test_' ;"
Vous pouvez choisir n'importe quel préfixe de votre choix. Ici, nous avons choisi 'test_' comme nouveau nom de base de données. Une fois cela fait, les pirates ne pourront pas localiser leurs commandes SQL.
2. Contrôler les entrées sur le terrain et les soumissions de données
Vous pouvez configurer tous les champs de saisie de votre site Web pour n'accepter que certains types de données. Par exemple, un champ de nom ne doit autoriser que les entrées alphabétiques (lettres) car il n'y a aucune raison pour que des caractères numériques soient saisis ici. De même, un champ de numéro de contact ne doit accepter que des chiffres.
Vous pouvez utiliser la fonction sanitize_text_field() qui nettoie l'entrée de l'utilisateur. Cette validation des entrées garantit que les entrées incorrectes ou simplement dangereuses peuvent être bloquées.
3. Renforcez votre site WordPress
C'est l'une des mesures les plus importantes que vous puissiez prendre pour protéger votre site WordPress contre les attaques par injection SQL. Qu'est-ce que le durcissement de site Web ?
Un site Web WordPress vous offre de nombreuses fonctions pour vous aider à faire fonctionner le site. Cependant, la majorité des gens n'utilisent pas beaucoup de ces fonctions. WordPress.org recommande de désactiver ou de supprimer certains d'entre eux si vous ne les utilisez pas. Cela réduira les risques d'attaques car il y a moins d'éléments à essayer pour les pirates !
Certaines mesures de durcissement de WordPress sont :
- Désactivation de l'éditeur de fichiers
- Désactivation des installations de plugins ou de thèmes
- Mise en œuvre de l'authentification à 2 facteurs
- Limitation des tentatives de connexion
- Modification des clés de sécurité et des sels WordPress
- Bloquer l'exécution de PHP dans des dossiers inconnus
Pour mettre en œuvre ces mesures, vous pouvez utiliser un plugin comme MalCare qui vous permet de le faire en quelques clics.
Ou vous pouvez l'implémenter manuellement en suivant notre Guide sur le durcissement de WordPress.
Cela nous amène à la fin de la prévention des attaques par injection SQL. Si vous avez mis en œuvre les mesures dont nous avons discuté dans cette feuille de triche d'injection SQL, votre site sera en sécurité
[ss_click_to_tweet tweet= »Les attaques par injection SQL peuvent être évitées ! Utilisez ce guide pour mettre en œuvre les bonnes mesures de sécurité sur votre site WordPress. contenu = "" style = "par défaut"]
Dernières pensées
Mieux vaut prévenir que guérir. Les attaques par injection SQL peuvent causer un stress inutile et une lourde charge financière.
La plupart des mesures dont nous avons discuté aujourd'hui peuvent être facilement mises en œuvre à l'aide de plugins. Vous n'avez donc pas à vous inquiéter si vous n'êtes pas féru de technologie ! Vous pouvez toujours vous protéger !
Parallèlement à la mise en œuvre de ces mesures, nous vous suggérons fortement d'activer MalCare sur votre site. Son pare-feu défendra activement votre site Web contre les attaques. Il analyse votre site tous les jours pour vérifier les tentatives de piratage et les logiciels malveillants sur votre site.
Vous pouvez le considérer comme le garde de sécurité de votre site Web qui surveille votre site et empêche les méchants d'entrer. Vous pouvez avoir l'esprit tranquille en sachant que votre site est protégé.
Prévenez les attaques de piratage avec notre plugin de sécurité MalCare !