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
- Mettre à jour WordPress, les thèmes et plugins sans exception : la majorité des failles SQLi exploitées visent des versions obsolètes.
- Utiliser les fonctions natives WordPress :
$wpdb->prepare()protège automatiquement les requêtes personnalisées contre les injections. - 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.
- 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.
- 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.