Passons au troisième volet sur la façon de sécuriser votre installation WordPress.
Jusqu'à présent, nous avons vu dans le premier article comment créer un mot de passe sécurisé et comment faire en sorte qu'il soit difficile de savoir quel utilisateur est l'administrateur de votre installation WordPress, et dans le deuxième article comment protéger le dossier wp-admin et comment protéger l'un des fichiers les plus critiques, en matière de sécurité, de toute installation WordPress : le fichier wp-config. Ainsi que certains plugins qui peuvent nous aider à effectuer ces tâches.
Ce mois-ci, je vais être un peu plus légère et je vais affronter des tâches qui, pour être un peu plus simples, n'en sont pas moins importantes et, dans bien des cas, oubliées :
- Modifier le préfixe des tables de la base de données WordPress.
- Désactiver l'éditeur de fichiers de WordPress.
- Configurez les clés et les sels de sécurité.
Table des matières
Modifier le préfixe des tables dans la base de données WordPress

Par défaut, lorsque nous installons WordPress, le préfixe des tables de la base de données est "wp_".
Si quelqu'un voulait attaquer un site Web créé avec WordPress, la première chose qu'il tenterait de faire serait de créer un utilisateur dans la table wp_users et de lui donner des privilèges d'administrateur. C'est pourquoi, si nous ne voulons pas faciliter la tâche des attaquants, nous devons remplacer le préfixe "wp_" par autre chose.
Si nous sommes confrontés à une nouvelle installation, l'option est simple : changer ce préfixe pour celui que nous voulons.
Le problème se pose lorsque nous avons déjà un site web en cours d'exécution et que cela n'a pas été fait. Dans ce cas, nous devrons modifier les préfixes des tables et les références à ce préfixe qui sont stockées dans la BD. Allons-y.
Tout d'abord, créez une copie de sauvegarde de la base de données. Pour ce faire, accédez à phpMyAdmin depuis le cpanel de votre hébergement , sélectionnez la base de données sur laquelle vous allez travailler et cliquez sur le bouton "Exporter" qui apparaît dans le panneau de droite. Vous accédez alors à une page contenant les options d'exportation, que vous pouvez laisser par défaut (méthode d'exportation rapide, format : SQL). Cliquez sur le bouton "Continuer" et dans quelques instants, en fonction de sa taille, la base de données sera téléchargée sur votre ordinateur.

Et maintenant, à la tâche. Lorsque vous avez effectué la sauvegarde, vous avez pu voir, et noter, le préfixe des tables de la BD. La première chose à faire est donc de modifier ce préfixe dans l'installation de WordPress.
C'est très facile, car le CMS enregistre ces informations à un seul endroit : le fichier wp-config,php, ça vous dit quelque chose ? Accédez-y via FTP, modifiez-le et recherchez les éléments suivants :
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';
Dans une installation qui n'a pas été modifiée, vous trouverez cette chaîne à la ligne 66 de notre wp-config.php, Une fois localisée, nous changeons la valeur "wp_" par le préfixe que vous avez choisi, dans cet article comme exemple nous allons utiliser "préfixe_".
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'nuevoprefijo_';
Une fois cette opération effectuée, vous devrez accéder à nouveau à phpMyAdmin pour modifier les préfixes de la base de données.
WordPress avant la version 4.4 créait 11 tables. A partir de cette version, il crée une table supplémentaire, vous devrez donc renommer au moins 12 tables, puisque vous aurez été appliqué et que vous aurez votre WordPress à jour. Et je dis au moins parce que si vous avez installé des plugins qui créent des tables, vous devez également changer le préfixe de ces tables supplémentaires.
Pour changer ces préfixes, bien que vous puissiez le faire en modifiant un par un les noms des tables dans phpMyAdmin, il est préférable de le faire en bloc en utilisant une requête SQL. Ne vous inquiétez pas, je vous laisse un guide qui vous permettra de le faire en une seule fois. N'oubliez pas de changer l'endroit où il est écrit "newprefix_" par le préfixe de votre choix.
//Si tu WordPress es anterior a la versión 4.4
RENAME TABLE `wp_commentmeta` TO `nuevoprefijo_commentmeta`;
RENAME TABLE `wp_comments` TO `nuevoprefijo_comments`;
RENAME TABLE `wp_links` TO `nuevoprefijo_links`;
RENAME TABLE `wp_options` TO `nuevoprefijo_options`;
RENAME TABLE `wp_postmeta` TO `nuevoprefijo_postmeta`;
RENAME TABLE `wp_posts` TO `nuevoprefijo_posts`;
RENAME TABLE `wp_terms` TO `nuevoprefijo_terms`;
RENAME TABLE `wp_term_relationships` TO `nuevoprefijo_term_relationships`;
RENAME TABLE `wp_term_taxonomy` TO `nuevoprefijo_term_taxonomy`;
RENAME TABLE `wp_usermeta` TO `nuevoprefijo_usermeta`;
RENAME TABLE `wp_users` TO `nuevoprefijo_users`;
//Si tu WordPress es versión 4.4 o posterior, deberás renombrar la tabla wp_termmeta
RENAME TABLE `wp_termmeta` TO `nuevoprefijo_termmeta`;
Et n'oubliez pas que vous devrez également renommer le reste des tables qui auraient été créées par les plugins que vous avez installés, s'ils existent.
Une fois que c'est fait, vous devez modifier les références aux tables qui sont stockées dans la base de données. Plus précisément dans les tableaux suivants : nuevoprefijo_options; nuevoprefijo_usermeta et nuevoprefijo_termmeta (ce dernier si vous avez mis à jour votre WordPress à la version 4.4 ou ultérieure). Pour ce faire, à partir de phpMyAdmin, exécutez les requêtes SQL suivantes.
SELECT * FROM `nuevoprefijo_options` WHERE `option_name` LIKE '%wp_%' # Para la Tabla nuevoprefijo_options
SELECT * FROM `nuevoprefijo_usermeta` WHERE `meta_key` LIKE '%wp_%' # Para la tabla nuevoprefijo_usermeta
SELECT * FROM `nuevoprefijo_termmeta` WHERE `meta_key` LIKE '%wp_%' # Para la tabla nuevoprefijo_ternmeta (a partir de WordPress 4.4)
Chacune de ces requêtes renverra plus d'un résultat. Vous devrez donc remplacer la valeur wp_ par le nouveau préfixe que vous avez choisi.
Désactiver l'éditeur de fichiers
Commençons par quelque chose de rapide et facile à faire, désactiver l'éditeur de fichiers de WordPress.
Vous l'avez peut-être vu à un moment donné, et vous avez peut-être ou non osé l'utiliser. Je parle de l'éditeur de fichiers système qui est livré avec WordPress et auquel vous pouvez accéder par l'administrateur dans le menu Apparence ⇒ Éditeur.

À partir de ce simple éditeur, vous pouvez modifier les fichiers du thème que vous avez choisi dans votre WordPress (aussi bien les css que les modèles de page). Si vous pouvez modifier ces fichiers, quiconque y a accès peut aussi le faire, et je ne parle pas seulement de quelqu'un qui attaque votre site web, mais aussi de quelqu'un qui travaille avec vous, et qui peut le salir, très salir.
La solution est de désactiver l'accès à cet éditeur et cela se fait d'une manière très simple : ouvrir le fichier wp-config.php et ajouter la ligne ci-dessous.
/** La siguiente instrucción deshabilita el editor de archivos de WordPress**/
define(‘DISALLOW_FILE_EDIT’, True);
Et avec cela, vous avez déjà désactivé l'éditeur de fichiers de WordPress. Comme je l'ai promis, c'est très simple.
Configurer les clés et les sels de sécurité
WordPress utilise huit clés de sécurité qui empêchent, ou entravent, l'accès aux mots de passe par des robots ou des programmes qui tentent d'assaillir le Web par force brute. Les fameuses clés et leurs valeurs de cryptage ou sels correspondants protègent également les cookies d'accès que WordPress génère lorsqu'un utilisateur est identifié. Et ils ont été ajoutés dans les versions suivantes :
- WordPress 2.6 : AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY
- WordPress 2.7 : NONCE_KEY
- WordPress 3.0 : AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALT
Ces valeurs doivent être définies par l'administrateur et peuvent être modifiées autant de fois que vous le souhaitez.
Pour ce faire, vous devez accéder au fichier wp-config,php déjà mentionné, peut-être comprendrez-vous maintenant pourquoi j'ai insisté dans l'article précédent sur le fait qu'il s'agissait d'un fichier critique qui devait être protégé... et rechercher ce qui suit la première fois.
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
* * @since 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
/**#@-
*/
Comme vous pouvez le voir, il est très descriptif, dans les commentaires, vous avez les instructions et l'url de l'application. générateur de clés fourni par WordPress lui-même pour générer un nouveau jeu de clés/salts
Une fois que vous avez accédé au générateur, il vous suffit de copier le résultat et de le coller dans votre wp-config.php, en remplaçant l'extrait de code d'exemple ci-dessus. Cela ressemblera à quelque chose comme ceci :
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
* * @since 2.6.0
*/
define('AUTH_KEY', 'g]-Muu}vU~-LXBc>nLO98S)qWR1w)@tRc;3%QU|1Q6s:*d|np-OyWavP42p=+-h[');
define('SECURE_AUTH_KEY', 'iB1rU4r+yg>8,2|yc{&t4)8i&6{q&BC!wIFNc4xv@!ch#F.>S3Q>G^bSu2l#zNDA');
define('LOGGED_IN_KEY', 'U%m<vKJctbx&UwE+U|cIy]vYkqK?|=;DR[9|%?|/}/_mjAm|buEv8+k%(Bi_+}I4');
define('NONCE_KEY', 'm-sdzgeLvg+?:_F#{Nc.eqeRc6+9V^b-^D .o*CbN!q-WJ&?_-Bn.w`0hZ=b}lUr');
define('AUTH_SALT', '}SBsc:9#Fi@H&4D*iS:<X542.F#2|F@<oQG-p>]6ax]cpMo#|:C_ii{nC<N-oB8/');
define('SECURE_AUTH_SALT', '(5|5$Am-jNOQ/[0iU[Y7v;Cb|XBB!*]1Q`~`8X7+bz=&mh*w[O)4}VG%>6RO;RC+');
define('LOGGED_IN_SALT', '>2Se-K_{hV+q+t4`W>^|*|u8**Z.iV^[MPpz[)FR6OJqwIx 6kWAWC[j.{?;7w*d');
define('NONCE_SALT', '/u50}WYM.wDR-#R`sM_N*dH2Io(_Pi%7JgF%6QR&a9y4JWsHPg T;4-w}!h:yKk#');
/**#@-
*/
Comme je l'ai déjà mentionné, vous pouvez effectuer cette opération autant de fois que vous le souhaitez. Dans ce cas, tous les utilisateurs qui se sont connectés à votre site Web et qui ont activé l'option "Mémoriser mon mot de passe" devront se connecter à nouveau.
Il est recommandé de changer régulièrement les clés et les sels de votre #WordpPress, par exemple tous les trois/six mois.
Et, bien sûr, ne jamais, mais alors jamais, donner ces codes à qui que ce soit (l'exemple que vous avez dans cet article est une génération que j'ai faite AdHoc, donc ce ne sont pas ceux d'un quelconque Web).
Ne partez pas encore.
Comme je vous l'ai dit, la journée allait être facile et légère. Nous avons presque fini, mais il nous reste la prochaine chose à faire :
- Ajouter les en-têtes de sécurité HTTP à notre serveur.
- Attribuez les permissions appropriées aux dossiers et aux fichiers de notre serveur Web.
- Faites en sorte que votre WordPress ne ressemble pas à un WordPress, et ne donne pas d'indices.
- Programmez un système de sauvegarde.
Je vous invite à laisser vos impressions et/ou vos doutes dans le formulaire de contact et à me suggérer de nouveaux sujets que vous souhaiteriez voir abordés dans ces tutoriels. Je serai heureux de vous répondre par courriel et d'écrire dans ce blog.