Contenus
4 Tutoriel pas à pas : 6 étapes pour blindé votre base de données WordPress

Imaginez : votre site WordPress est piraté, vos données clients fuient, et vos années de contenu disparaissent en quelques clics. Ce scénario cauchemardesque arrive chaque jour à des milliers de sites mal protégés. La bonne nouvelle ? 90 % des attaques exploitent des failles basiques dans la base de données – et ce tutoriel va vous montrer comment les verrouiller en moins de 2 heures, même sans être expert.

Pré-requis et vision d’ensemble : ce dont vous aurez besoin

Avant de commencer, vérifiez ces éléments essentiels. Pas de panique : la plupart sont déjà disponibles sur votre hébergement.

Élément Version minimale Où le trouver Temps estimé
Accès FTP/SFTP N/A Tableau de bord de votre hébergeur (FileZilla, cPanel) 5 min
Accès phpMyAdmin 5.0+ Section »Bases de données » de votre hébergement 10 min
WordPress 5.6+ (recommandé 6.0+) Tableau de bord WP → Mises à jour 15 min
Éditeur de code VS Code, Notepad++, Sublime Text Téléchargement gratuit Installation : 5 min

Note pour les débutants : Si vous utilisez un hébergement mutualisé (OVH, Hostinger, SiteGround), la plupart de ces outils sont préinstallés. Pour les solutions cloud (AWS, DigitalOcean), vous devrez peut-être configurer manuellement certains accès.

Tutoriel pas à pas : 6 étapes pour blindé votre base de données WordPress

Étape 1 : Changer le préfixe des tables (même sur un site existant)

Objectif : Empêcher les attaques par injection SQL qui ciblent systématiquement le préfixe par défaut wp_.

  1. Sauvegardez votre base :
    • Dans phpMyAdmin, sélectionnez votre base → onglet »Exporter » → méthode »Rapide » → format SQL → lancez l’export.
    • Conservez ce fichier sur votre ordinateur ET dans un cloud (Google Drive, Dropbox).
  2. Modifiez le préfixe :
    • Ouvrez votre fichier wp-config.php (à la racine de WordPress via FTP).
    • Repérez la ligne : $table_prefix = ‘wp_’
    • Remplacez par un préfixe aléatoire : $table_prefix = ‘m7x9k_’ (utilisez ce générateur pour créer une chaîne unique).
  3. Mettez à jour les tables existantes :
    • Dans phpMyAdmin, exécutez cette requête (remplacez m7x9k_ par votre nouveau préfixe) :

      RENAME table `wp_commentmeta` TO `m7x9k_commentmeta` RENAME table `wp_comments` TO `m7x9k_comments` RENAME table `wp_links` TO `m7x9k_links` RENAME table `wp_options` TO `m7x9k_options` RENAME table `wp_postmeta` TO `m7x9k_postmeta` RENAME table `wp_posts` TO `m7x9k_posts` RENAME table `wp_termmeta` TO `m7x9k_termmeta` RENAME table `wp_terms` TO `m7x9k_terms` RENAME table `wp_term_relationships` TO `m7x9k_term_relationships` RENAME table `wp_term_taxonomy` TO `m7x9k_term_taxonomy` RENAME table `wp_usermeta` TO `m7x9k_usermeta` RENAME table `wp_users` TO `m7x9k_users`

    • Pour les plugins qui ont leurs propres tables (WooCommerce, etc.), utilisez cette requête pour les lister :

      SHOW TABLES LIKE ‘wp_%’

      Puis renommez-les manuellement avec le même préfixe.

  4. Mettez à jour les options WordPress :
    • Exécutez ces deux requêtes pour corriger les références internes :

      UPDATE `m7x9k_options` SET `option_name` = ‘m7x9k_user_roles’ WHERE `option_name` = ‘wp_user_roles’ UPDATE `m7x9k_usermeta` SET `meta_key` = ‘m7x9k_capabilities’ WHERE `meta_key` = ‘wp_capabilities’

Vérification :

  • Connectez-vous à votre admin WordPress : si tout fonctionne, le changement est réussi.
  • Vérifiez dans phpMyAdmin que toutes les tables ont bien le nouveau préfixe.

Erreurs fréquentes et solutions :

  • Erreur 404 après connexion : Vous avez oublié de mettre à jour une table. Vérifiez avec SHOW TABLES LIKE ‘wp_%’ et renommez les tables restantes.
  • Site en maintenance : Un plugin a ses propres tables non renommées. Désactivez-le temporairement via FTP (renommez son dossier dans /wp-content/plugins/).
  • Requêtes SQL bloquées : Votre hébergeur limite phpMyAdmin. Utilisez Adminer (plus léger) ou contactez le support.

Étape 2 : Limiter les accès à la base de données via .htaccess

Objectif : Bloquer les accès directs aux fichiers sensibles et restreindre l’accès à phpMyAdmin.

  1. Protéger wp-config.php :
    • Éditez votre fichier .htaccess (à la racine de WordPress).
    • Ajoutez ce code au début du fichier :

      order allow,deny deny from all

  2. Restreindre l’accès à phpMyAdmin :
    • Si votre phpMyAdmin est accessible via une URL comme votresite.com/phpmyadmin, ajoutez :

      AuthType Basic AuthName »Accès restreint » AuthUserFile /chemin/vers/.htpasswd Require valid-user

    • Générez un fichier .htpasswd avec cet outil et uplodez-le hors de la racine web (ex: /home/votrenom/.htpasswd).
  3. Bloquer les injections SQL basiques :
    • Ajoutez ces règles à la fin de votre .htaccess :

      # Bloquer les requêtes suspectes RewriteEngine On RewriteCond %{QUERY_STRING} (|%3E|%3C|%27|%22|%5C|%20|%0A|%0D|%0B|%09) [NC,OR] RewriteCond %{QUERY_STRING} (SELECT|INSERT|UPDATE|DELETE|DROP) [NC] RewriteRule .* – [F,L]

Vérification :

  • Essayez d’accéder directement à votresite.com/wp-config.php : vous devriez avoir une erreur 403.
  • Testez une requête SQL basique dans l’URL (ex: ?s=1′ OR ‘1’=’1) : le site doit bloquer la requête.

Erreurs fréquentes et solutions :

  • Erreur 500 après modification : Syntax error dans le .htaccess. Vérifiez les guillemets et les balises avec cet outil de validation.
  • phpMyAdmin inaccessible : Mauvais chemin dans la directive Directory. Utilisez le chemin absolu (demandez-le à votre hébergeur).
  • Plugins qui ne fonctionnent plus : Certains plugins (cache, sécurité) modifient le .htaccess. Désactivez-les temporairement pendant vos tests.

Étape 3 : Créer un utilisateur MySQL dédié avec des permissions minimales

Objectif : Éviter d’utiliser le compte »root » MySQL qui a tous les droits. Un utilisateur dédié limite les dégâts en cas de fuite.

  1. Créez un nouvel utilisateur :
    • Dans phpMyAdmin → onglet »Utilisateurs » → »Ajouter un utilisateur ».
    • Choisissez :
      • Nom d’utilisateur : wp_user_votresite (personnalisez)
      • Hôte : localhost (ou l’IP de votre serveur si différent)
      • Mot de passe : générez-en un fort (20+ caractères) avec Bitwarden.
  2. Attribuez des permissions précises :
    • Dans phpMyAdmin, sélectionnez votre base de données → onglet »Privilèges » → »Ajouter un utilisateur à la base de données ».
    • Cochez uniquement ces permissions :

      SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES

    • Ne cochez surtout pas : GRANT, SUPER, FILE, PROCESS.
  3. Mettez à jour wp-config.php :
    • Ouvrez wp-config.php et modifiez ces lignes :

      define(‘DB_USER’, ‘wp_user_votresite’) define(‘DB_PASSWORD’, ‘votre_mot_de_passe_généré’)

Vérification :

  • Rechargez votre site : il doit fonctionner normalement.
  • Dans phpMyAdmin, connectez-vous avec le nouvel utilisateur : vous ne devriez pas voir les autres bases de données.

Erreurs fréquentes et solutions :

  • Erreur de connexion à la base : Mauvais mot de passe ou nom d’utilisateur. Vérifiez les guillemets dans wp-config.php.
  • Impossible de créer des tables : Permission CREATE manquante. Retournez dans phpMyAdmin pour l’ajouter.
  • Plugins qui demandent plus de permissions : Certains plugins (comme des sauvegardes) nécessitent LOCK TABLES. Ajoutez-la si besoin.

Étape 4 : Chiffrer les données sensibles avec des clés de sécurité uniques

Objectif : Protéger les mots de passe et cookies des utilisateurs avec un chiffrement fort.

  1. Générez des clés de sécurité :
    • Rendez-vous sur le générateur officiel WordPress.
    • Copiez le bloc de 8 lignes généré (exemple) :

      define(‘AUTH_KEY’, ‘…’) define(‘SECURE_AUTH_KEY’, ‘…’) define(‘LOGGED_IN_KEY’, ‘…’) define(‘NONCE_KEY’, ‘…’) define(‘AUTH_SALT’, ‘…’) define(‘SECURE_AUTH_SALT’, ‘…’) define(‘LOGGED_IN_SALT’, ‘…’) define(‘NONCE_SALT’, ‘…’)

  2. Remplacez les clés existantes :
    • Dans wp-config.php, repérez la section »Clés uniques d’authentification ».
    • Remplacez tout le bloc par les nouvelles clés (sans modifier les define).
  3. Forcez le rechiffrement des cookies :
    • Ajoutez cette ligne pour déconnecter tous les utilisateurs (ils devront se reconnecter) :

      define(‘FORCE_SSL_ADMIN’, true) // Force HTTPS dans l’admin @ini_set(‘session.cookie_secure’, true) // Cookies en HTTPS seulement

Vérification :

  • Déconnectez-vous puis reconnectez-vous : la session doit être sécurisée (icône 🔒 dans la barre d’URL).
  • Vérifiez dans les outils développeurs (F12 → onglet »Application » → »Cookies ») que les cookies ont l’attribut Secure.

Erreurs fréquentes et solutions :

  • Étape 5 : Sauvegarder régulièrement la base de données

    Objectif : Prévenir les pertes de données en cas de faille ou d’attaque. Utilisez un plugin dédié (comme UpdraftPlus) ou configurez des sauvegardes automatiques via un outil comme WP-CLI. Stockez les sauvegardes hors du serveur (cloud, NAS) et vérifiez leur intégrité périodiquement.

    Étape 6 : Activer le chiffrement SSL/TLS

    Objectif : Protéger les échanges entre le serveur et les utilisateurs. Installez un certificat SSL (Let’s Encrypt) et forcez son utilisation en ajoutant dans wp-config.php :

    define(‘FORCE_SSL_ADMIN’, true) pour l’interface d’administration, et @ini_set(‘session.cookie_secure’, true) pour les cookies. Vérifiez ensuite que l’URL commence par https://.

    Étape 7 : Surveiller les activités suspectes

    Objectif : Détecter les intrusions précocement. Utilisez des plugins comme Wordfence ou Sucuri pour analyser les requêtes SQL, les tentatives de connexion et les modifications de fichiers. Configurez des alertes pour les activités anormales (ex : requêtes massives).

    En suivant ces étapes, votre base de données WordPress sera protégée contre les vulnérabilités courantes. N’oubliez pas de mettre à jour régulièrement WordPress, les plugins et les thèmes pour combler les failles connues.

    Si vous avez besoin d’aide, contactez un webmaster sérieux qui va vous aider dans vos tâches de site internet. Voici le numéro de téléphone : 09 77 29 09 69

    Et n’oubliez pas : une bonne gestion comptable, c’est la clé d’une boutique prospère. Alors, prêt à prendre les commandes de vos finances ? 🚀

    Théo Dupuis

    Théo Dupuis

    Spécialiste en marketing SEO

    Théo Dupuis est un expert en marketing SEO avec plus de 10 ans d'expérience. Il a aidé de nombreuses entreprises à améliorer leur visibilité en ligne grâce à des stratégies de référencement naturel innovantes. Passionné par les nouvelles technologies et les tendances du marché, il partage régulièrement ses connaissances lors de conférences et de formations.

    Commentaires (1)

    Marie_42
    Marie_42 il y a 2 semaines
    Merci pour ce guide détaillé ! J'ai toujours eu peur de me faire pirater, mais là je me sens prêt à sécuriser ma base de données WordPress.

Une réponse

Laisser un commentaire

0

Mon panier

Chargement...