WordPress : Changer simplement le préfixe des tables

tables avec le prefixe wp_

Pour des raisons de sécurité il est déconseillé de conserver le préfixe par défaut “wp_” pour le nommage des tables de la base de données de WordPress. C’est le cas chez vous ? Pas de panique, suivez ce tutoriel pour modifier le préfixe de vos tables facilement.

tables avec le prefixe wp_

Pourquoi ne faut-il pas utiliser le préfixe wp_ ?

WordPress est le CMS le plus utilisé au monde, ce qui en fait une liste de choix pour tous les pirates : il suffit de publier un plugin malveillant ou d’exploiter une faille de sécurité introduite par une extension ou un thème pour toucher des milliers de sites, par exemple au moyen d’une injection SQL. Je vous laisse imaginer que quelqu’un qui va lancer une attaque la plus large possible sur un produit “grand public” ne va pas s’amuser à personnaliser son script pour toutes ses cibles, il est donc probable que ce type d’attaque va cibler les tables par défaut, donc celles préfixées wp_.

separateur

Il suffit donc de modifier le préfixe par défaut pour être à l’abri ?

Absolument pas, mais ça peut vous empêcher de tomber sous les coups d’une attaque basique.

separateur

Quel préfixe choisir pour sécuriser WordPress ?

En théorie n’importe lequel du moment que vous n’utilisez plus wp_ (vous comprendrez pourquoi ici). Comme pour vos mots de passe, mélangez des lettres et des chiffres, utilisez au moins 6 caractères, votre préfixe peut être complexe ça n’est pas grave puisqu’en théorie ni vous ni aucun plugin/thème n’aura plus jamais à le saisir.

Evitez aussi le nom de votre site, ou ses initiales, c’est bien trop simple à deviner et ça peut être mis en place aussi simplement qu’une injection sur wp_*.

separateur

Y-a-t’il quelque chose à faire avant de se lancer ?

Un backup, une sauvegarde, un dump … de votre base de données. Et mettez éventuellement votre site hors ligne, il pourra être indisponible de quelques minutes (si tout se passe bien) à quelques heures (si au moins un plugin pendant la manipulation).

Ensuite, choisissez quel préfixe vous allez utiliser, pour cet article je vais définir rmg1234_

separateur

Comment modifier le préfixe de ses tables WordPress ?

 1. Indiquer à WordPress quel nouveau préfixe il doit utiliser

Le fichier wp-config.php situé à la racine de tout site WordPress contient entre autres les informations de  connexion à la base de données et, dans le cas qui nous intéresse, une variable appelée $table_prefix

// Remplacez cette ligne
$table_prefix = 'wp_';

// Par celle-ci
$table_prefix = 'rmg1234_';
Modifier le préfixe des tables WordPress dans le fichier wp-config.php

 

2. Modifier le prefixe des tables utilisées par WordPress

WordPress n’utilise pas énormément de tables différentes, comme vous pouvez le constater ici. Néanmoins il faudra les renommer toutes une par une. Si vous savez comment lancer des requêtes SQL, vous pouvez simplement copier/coller et exécuter les lignes suivantes. Si vous ne savez pas comment faire, utilisez votre outil préféré (comme phpMyAdmin) pour faire la modification manuellement.

RENAME TABLE `wp_commentmeta` TO `rmg1234_commentmeta`;
RENAME TABLE `wp_comments` TO `rmg1234_comments`;
RENAME TABLE `wp_links` TO `rmg1234_links`;
RENAME TABLE `wp_options` TO `rmg1234_options`;
RENAME TABLE `wp_postmeta` TO `rmg1234_postmeta`;
RENAME TABLE `wp_posts` TO `rmg1234_posts`;
RENAME TABLE `wp_terms` TO `rmg1234_terms`;
RENAME TABLE `wp_term_relationships` TO `rmg1234_term_relationships`;
RENAME TABLE `wp_term_taxonomy` TO `rmg1234_term_taxonomy`;
RENAME TABLE `wp_usermeta` TO `rmg1234_usermeta`;
RENAME TABLE `wp_users` TO `rmg1234_users`;
Requête SQL pour modifier les préfixes des tables de WordPress

 

Si vous avez activé le multisite, WordPress utilise quelques tables supplémentaires qu’il vous faudra modifier de la même façon.

RENAME TABLE `wp_blogs` TO `rmg1234_blogs`;
RENAME TABLE `wp_blog_versions` TO `rmg1234_blog_versions`;
RENAME TABLE `wp_registration_log` TO `rmg1234_registration_log`;
RENAME TABLE `wp_signups` TO `rmg1234_signups`;
RENAME TABLE `wp_site` TO `rmg1234_site`;
RENAME TABLE `wp_sitemeta` TO `rmg1234_sitemeta`;
Requête SQL pour modifier les préfixes des tables multisite de WordPress

 

3. Adapter les options de WordPress

A ce stade WordPress est incapable de retrouver certaines informations à propos de ses utilisateurs, comme par exemple leurs droits d’accès. Pour que  tout fonctionne correctement il faut mettre à jour quelques options de configuration de votre site, lancez donc les requêtes suivantes pour rétablir la situation.

/* Modification de la table wp_options */
UPDATE `rmg1234_options`
SET `option_name` = REPLACE( option_name, 'wp_', 'rmg1234_' )
WHERE `option_name` LIKE 'wp_%';

/* Modification de la table wp_user_meta */
UPDATE `rmg1234_usermeta`
SET `meta_key` = REPLACE( meta_key, 'wp_', 'rmg1234_')
WHERE `meta_key` LIKE 'wp_%';
Requête SQL pour adapter les options de WordPress au nouveau préfixe

 

4. Renommer les tables spécifiques à vos plugins

Si votre installation de WordPress comporte des plugins il est possible que ceux-ci aient installé leurs propres tables. Il vous faudra donc lister toutes les tables restantes avec le préfixe wp_ et les renommer comme nous l’avons fait avec les tables standard.

separateur

Je viens de modifier le préfixe de mes tables et WordPress m’affiche une page blanche…

A 99% cette erreur est provoquée par un thème ou une extension mal développée. En conséquence commencez par désactiver tous vos plugins. Si cela fonctionne, réactivez les un par un pour trouver le coupable et  éventuellement le corriger ou bien le remplacer. Si ça ne fonctionne pas, retournez à un thème par défaut de WordPress (twenty fifteen par exemple) et voyez si c’est bon.

Si ça n’est toujours par bon, c’est certainement que vous avez fait une erreur, vérifiez donc les manipulations effectuées.

Si par malheur la page reste désespérément blanche, faites une sauvegarde de votre site et surtout de sa base de données actuelle, restaurez la sauvegarde faite avant de commencer et tournez-vous vers un professionnel qui saura rechercher l’alpha et l’oméga du problème.

separateur

Rassurez-vous, il s’agit d’une opération de routine et il n’y a pas de raison que cela ne fonctionne pas. D’ailleurs si vous avez déjà effectué un changement de préfixe, n’hésitez pas à venir en témoigner dans les commentaires !


Sources :

http://wpchannel.com/modifier-prefixe-base-donnees-wordpress-apres-installation/
http://sql.sh/1205-wordpress-changer-prefixe-tables

3 réponses

  1. GTi dit :

    Merci pour ce tuto très clair et les requettes sql qui vont bien.

  2. […] Pour un nouveau site, n’utilisez pas le préfixe « wp_ » par défaut des tables de votre base de données pour éviter les injections SQL. Pour un site/blog déjà existant, modifiez-les. Vous pouvez par exemple suivre ce tuto. […]

  3. […] Vous cherchez des informations sur WordPress ? Vous avez besoin d'apprendre à utiliser WordPress ? Vous êtes perdus pour installer un nouveau thème WordPress ? Vous voulez connaitre les meilleurs plugins WordPress ? CODE BLOGUEUR est là pour vous aider ! Que ce soit pour installer votre site, pour le modifier, pour l'améliorer … De plus, vous allez apprendre à monétiser votre blog avec les meilleures techniques connues à ce jour. WordPress : Changer simplement le préfixe des tables. […]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *