Injections SQL sur WordPress : comment fonctionnent-elles et comment s’en protéger ?

Les injections SQL figurent toujours dans le top des attaques les plus répandues sur le web. Pourtant, avec les bons réflexes, elles sont largement évitables. Voici ce que tout propriétaire de site WordPress doit comprendre — et mettre en place.

Les injections SQL font partie des vecteurs d’attaque les plus anciens du web — et pourtant, selon le rapport OWASP Top 10 2021 (toujours référence en 2025), elles restent dans le top 3 des vulnérabilités les plus exploitées. WordPress, parce qu’il concentre 43 % des sites web mondiaux, est une cible de choix. Voici ce qu’il faut savoir et faire.

Comment une injection SQL fonctionne-t-elle sur WordPress ?

WordPress communique en permanence avec sa base de données MySQL via des requêtes SQL. Lorsqu’un formulaire (connexion, recherche, contact) ne filtre pas correctement les données saisies par l’utilisateur, un attaquant peut y glisser du code SQL malveillant. Ce code est alors exécuté directement par la base de données.

Résultat : vol de données (mots de passe, emails, contenus privés), modification ou suppression d’enregistrements, voire prise de contrôle totale du site si les droits de la base sont trop permissifs.

Les points d’entrée les plus courants

  • Formulaires de recherche : souvent mal protégés, notamment avec les plugins de recherche tiers.
  • Formulaires de contact : les champs non sanitizés sont des portes d’entrée classiques.
  • Paramètres d’URL : les variables ?id=, ?cat= passées en GET sont fréquemment ciblées.
  • Plugins vulnérables : de nombreuses failles SQLi sont découvertes chaque année dans des extensions WordPress populaires. La base WPScan répertorie plus de 50 000 vulnérabilités connues.

Les protections à mettre en place

  1. Mettre à jour WordPress, les thèmes et plugins sans exception : la majorité des failles SQLi exploitées visent des versions obsolètes.
  2. Utiliser les fonctions natives WordPress : $wpdb->prepare() protège automatiquement les requêtes personnalisées contre les injections.
  3. Installer un pare-feu applicatif (WAF) : des solutions comme Wordfence, Cloudflare WAF ou Sucuri filtrent les requêtes malveillantes avant qu’elles n’atteignent la base de données.
  4. Limiter les droits de l’utilisateur MySQL : l’utilisateur de base de données WordPress ne doit avoir que les droits strictement nécessaires (SELECT, INSERT, UPDATE, DELETE) — jamais DROP ou FILE.
  5. Activer la journalisation des erreurs SQL : détecter une attaque en cours nécessite d’avoir des logs exploitables.

Comment savoir si votre site est vulnérable ?

Des outils comme WPScan (outil open source dédié WordPress) ou OWASP ZAP permettent de scanner les points d’entrée d’un site à la recherche de vulnérabilités SQLi. Chez Teelo, nous intégrons ce type de test dans nos audits de sécurité web. Un seul plugin vulnérable peut suffire à compromettre l’ensemble du site — mieux vaut le savoir avant un attaquant.

Les injections SQL ne sont pas une menace théorique : chaque semaine, des milliers de sites WordPress sont scannés automatiquement à la recherche de ces failles. La bonne nouvelle, c’est que les protections existent, sont accessibles et ne nécessitent pas de compétences avancées. Chez Teelo, nous intégrons ces protections dans chaque site que nous livrons et proposons des audits pour les sites existants.

Cela pourrait également vous intéresser
Aller au contenu principal