wp-config.php : sécurisation et optimisations

wp-config.php : sécurisation et optimisations

Le fichier wp-config.php à la racine de votre WordPress est la clé de voute de votre solution. Il fait le lien entre votre serveur de fichiers et votre base de données. Lors de l’installation, le fichier est configuré avec les instructions de base, mais il est préférable d’y apporter quelques modifications afin d’augmenter la sécurité et d’optimiser la configuration globale.

Attention : Pour pouvoir restaurer votre configuration en cas de mauvaises manipulations, veillez à sauvegarder une copie de vos fichiers .htaccess et wp-config.php.

1 – Sécuriser l’accès au wp-config.php

La première étape, après l’installation de votre CMS WordPress est de bloquer l’accès au fichier wp-config.php depuis l’extérieur. Pour cela, rendez vous à la racine de votre serveur et récupérer le fichier .htaccess, et placez y les instructions suivantes :

<files wp-config.php>
order allow,deny
deny from all
</files> 

2 – Saisissez vos identifiants de base de données

Avant de lancer l’installation, vous avez renseigné les identifiants vous permettant de connecter votre base de données à votre solution WordPress, et vous devriez retrouvez facilement cette section :

define( 'DB_NAME',     'Nom_BDD' );
define( 'DB_USER',     'Nom_utilisateur' );
define( 'DB_PASSWORD', 'Mot_de_passe' );
define( 'DB_HOST',     'Votre_host' ); 
define( 'DB_CHARSET',  'utf8' );

Prenez également le soin de modifier le préfixe de vos tables afin de limiter les attaques :

$table_prefix = 'wp_';
// Modifier cette ligne avec le préfixe qui vous convient, ex :
$table_prefix = 'labside_';

3 – Clés d’authentification

Afin de garantir une meilleure sécurité des données stocké dans les cookies utilisateur, rendez vous sur le générateur de clés proposé par WordPress et remplacez le code de votre fichier wp-config.php par celui généré, exemple :

define('AUTH_KEY',         'n7JKnlS(p87tY2[D~4JAw DgG$X@-x]2+CMi0Kt85>/i+kiAN|YN*/=<5f*|P9gH');
define('SECURE_AUTH_KEY',  'ujdF>0_OK@rmp1B5k#{[~Uo[YdK2j:N?jCFBW@0MH^y5gbgE)q<[]tV3?!-1[e]j');
define('LOGGED_IN_KEY',    'Z.?daT,%B:^(k|T/.UrH|4>9XJtJ.8*hk7B$vm5+~{JH*#p%)?Z?XGG_%OrgF)e.');
define('NONCE_KEY',        '(#pv[%i(rQz[-7x$3f)cqC%0t4K=0F+s-kmgMfab88y/^vI9!?|QaXiguf+gOIVg');
define('AUTH_SALT',        'ZR-^UT+< QDN(@t39 9eA@|.Y-G2AbCR*,]2;kG][IH;2=6~e58!icqi7`DZN*Qr');
define('SECURE_AUTH_SALT', '[A_KeZV2:$A#BFI&r}UIE|5Cp/]M:f&L8G0f=eY6{cU)kPPm)/}N,aifYG>A?1+{');
define('LOGGED_IN_SALT',   '}8O[(U=0rbCxZ5oMG:Wz1G9exJp?NVQ2{Js` Zzi@EHlMXlkFM$Lb+@ik&=ld-;c');
define('NONCE_SALT',       'ZTOw`*mcF${rE?Ki?.0&{*IRvTuf-4VTZMZR2<$e>dF<w-A)F}@xK*v@##{I.-!E');

4 – Gestion des langues

Bien que l’option soit également disponible depuis le backoffice, vous avez la possibilité de définir la langue par défaut de votre solution WordPress, ainsi que le répertoire qui prendra en charge les autres langues disponible, pour cela définissez les valeurs suivantes :

define('WPLANG', 'fr_FR'); 
define('LANGDIR', 'votre-dossier-de-langues');

5 – Post Revision et Auto-Save

Afin d’éviter de peupler inutilement votre base de données avec des copies de sauvegarde de vos posts, qu’il rarement utile de conserver, il vous est possible de désactiver ces « révisions » et aussi d’augmenter le temps entre chaque sauvegarde automatique de vos posts. Pour cela, placez dans votre fichier wp-config.php ces quelques lignes :

define( 'WP_POST_REVISIONS', false );
define( 'AUTOSAVE_INTERVAL', 300 ); // Seconds

6 – Désactiver les éditeurs

Utiliser l’éditeur de code depuis le backoffice reste une pratique courante, pourtant c’est aussi un bon moyen de planter sa solution si vous faites la moindre erreur. Préférez plutôt un éditeur de code, transférez vos fichiers modifiés via FTP, et désactivez ces éditeurs dans le thème et les plugins comme suit :

define('DISALLOW_FILE_EDIT',true);

7 – Bloquer l’installation de nouveau composants

Il se peut également, dans un contexte particulier, que vous ayez besoin de bloquer l’installation de nouveaux thèmes et plugins, pour cela jouter simplement :

define('DISALLOW_FILE_MODS',true);

8 – Droits d’accès

Avec certains hébergeurs, vous n’avez parfois pas les droits pour modifier les propriétés d’accès aux fichiers. Heureusement, WordPress est la pour vous aider et vous permet de contourner ces restrictions en plaçant le code suivant dans votre fichier wp-config.php

define('FS_CHMOD_FILE', 0755);
define('FS_CHMOD_DIR', 0755);

9 – Videz la corbeille !

Au fur et à mesure que vous ajouter du contenu sur votre solution WordPress, vous serai amené à supprimer certains posts. Pour éviter de passer dans la corbeille et de devoir la vider manuellement (ce qui peut être fastidieux), vous pouvez automatiser cette suppression en définissant un intervalle qui vous convient. Place alos cette constante dans le fichier wp-config.php

define( 'EMPTY_TRASH_DAYS', 7 ); // 7 jours

10 – Désactiver les mises à jour automatiques

La version 3.7 de WordPress a introduit la prise en charge des mise à jour automatique. Cependant, en fonction du développement que vous avez réalisé et des plugins utilisés, il est préférable de vérifier sur un environnement de développement que la monté en version ne pose pas de problème majeur. Désactiver donc les mise à jour automatique sur votre environnement de production au moyen de la constante suivante :

define( 'WP_AUTO_UPDATE_CORE', false );

Pour en savoir toujours plus, rendez vous sur la page du codex associé

Retour au Blog