Sécuriser un site web Wordpress

Sécuriser un site web Wordpress

Disposant d'une multitude de plugins et de thèmes payants ou gratuits, Wordpress est devenu le CMS de choix des agences de com/dev au Maroc, malheureusement beaucoup n'appliquent pas les recommandations de sécurité pour ce CMS.

Nous allons entreprendre quelques modifications sur le fichier de configuration de Wordpress "wp-config.php" qui devrait être sur la racine de votre site, il faut alors:

  1. Créer une sauvegarde de ce fichier.
  2. Que toutes les lignes ajoutées soient avant la ligne:
/* That's all, stop editing! Happy blogging. */

Modification de fichier depuis l'administration

Il faut interdire la modification des fichiers depuis le panel d'administration en ajoutant les deux lignes suivantes au fichier de configuration:

define('DISALLOW_FILE_EDIT', true );
define('DISALLOW_FILE_MODS', true );

Mise à jour automatique du noyau de Wordpress

Il faut activer la mise à jour automatique du noyau du CMS (pas des plugins/thèmes) en ajoutant la ligne suivante au fichier de configuration:

define('WP_AUTO_UPDATE_CORE', true);

Ceci permettra d'avoir une version Wordpress toujours à jour par rapport aux mises à jour de sécurité, ainsi en cas de découverte de nouvelles failles sur ce CMS votre site installera automatiquement les correctifs nécessaires dès leurs disponibilités.

Protéger le fichier de configuration du site

Le fichier de configuration "wp-config.php" contient le compte d'accès à la base de données ainsi que les clés secrètes, pour cette raison il faut interdit sa lecture probable à distance en ajoutant le code suivant à votre fichier ".htaccess" présent à la racine de votre site:

<FilesMatch ^wp-config.php$>
   deny from all
</FilesMatch>

Protection en cas d'injections de fichiers PHP

Il est toujours possible d'avoir des fichiers PHP injectés dans votre dossier "uploads" pour une raison ou une autre (plugin défaillant par exemple), dans ce cas il faut s'assurer que ces fichiers même si injectés ne pourront pas être exécutés à distance, si vous utilisez un serveur Web Apache il faudrait ajouter un fichier ".htaccess" dans le dossier "/wp-content/uploads/" avec le contenu suivant:

<Files *.php>
    deny from all
</Files>

Dans le cas où vous utiliseriez Nginx, ajoutez le code suivant au fichier de configuration Nginx de votre site:

location ~ /wp-content/uploads/(.+)\.php$ {
 deny all;
}

Recommandations générales

  • N'installer que les plugins et thèmes d'origine sûr.
  • N'installer que les plugins et thèmes nécessaires.
  • Toujours garder les plugins et thèmes à jour.