Sécuriser mon fichier de configuration WordPress

Sécuriser mon fichier de configuration WordPress

Le fichier de configuration WordPress « wp-config.php » est situé à la racine du site, sur le serveur, et permet de faire le lien entre la base de données et le site entre autres.

Lors de l’installation de WordPress, il est créé avec un contenu standard depuis le fichier livré avec WordPress, wp-config-sample.php.

On recommande alors d’optimiser le fichier de configuration WordPress par rapport à vos besoins spécifiques.

Accès au fichier

Une fois votre site créé et le fichier wp-config de base généré (en se basant sur p-config-sample.php comme on l’a mentionné), la première chose à faire est de le sécuriser / protéger, en y interdisant l’accès. Pour cela, il faut modifier le fichier .htaccess à la racine de votre site, en ajoutant ces quelques lignes de code:

// Interdire l'accès au fichier wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

Il se peut que quelques pages de votre site ne fonctionnent plus après cet ajout, et vous aurez une erreur interne 500.

Pas de panique, il suffit d’aller dans « Réglages > Permaliens », changer le type des liens de votre site, sauvegarder, remettre votre type, sauvegarder et le site fonctionne correctement de nouveau.

Sécuriser le fichier par clefs d’authentification

Voila à quoi ressemble un fichier wp-config standard :

/* MySQL paramètres */
define( 'DB_NAME', 'Nom_de_la_BDD' );
define( 'DB_USER', 'Nom_de_l_utilisateur' );
define( 'DB_PASSWORD', 'Mot_de_passe' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );
/* Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/*Clefs uniques d'authentification et salage. */
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');
/* Uniquement pour une utilisation WordPress multisite */
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');
/* Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
/* MySQL Prefixe de table */
$table_prefix = 'wp_';

Les clefs d’authentification servent à assurer une meilleure sécurité des informations stockées dans les cookies des utilisateurs.

Elles peuvent être générées par ce générateur de clef.

Autres paramètres à optimiser

De plus, à l’installation de votre WordPress, il y aura une détection automatique de la langue du site, mais vous pouvez changer la langue. En effet, le changement se fait en modifiant directement le fichier wp-config.php

/* WordPress langue du site */
define( 'WPLANG', 'fr_FR' );
define('LANGDIR', 'votre-dossier-de-langues');

Aussi, par défaut, WordPress active le mode “révision” (pas de limite de versions). Cela veut dire que WordPress va sauvegarder automatiquement les pages et articles modifiées par l’utilisateur une infinité de fois. Dans la majorité des cas, ceci peut encombrer la base de données inutilement.

On va donc limiter les révisions et profiter pour mettre en place un nettoyage automatique de la corbeille de WordPress :

/* Désactiver les révisions */
define( 'WP_POST_REVISIONS', 'false' );
/* limiter le nombre des révision (utiliser l'une ou l'autre de ces options*/
define( 'WP_POST_REVISIONS', '4' );
/* interval de sauvegardes automatiques */
define( 'AUTOSAVE_INTERVAL', '300' );
/* Nettoyage de la corbeille */
define( 'MEDIA_TRASH', true );
define( 'EMPTY_TRASH_DAYS', '10' );

Pour plus de sécurité, vous pouvez (devez) crypter le fichier de configuration pour le rendre illisible par un humain.

Et vous, avez-vous d’autres conseils à nous donner pour le fichier de configuration ?

Laisser un commentaire, votre avis nous intéresse