Sécuriser un site WordPress

Les étapes indispensables pour sécuriser votre site Web WordPress

1- Masquer la version de WordPress

en ajoutant les codes suivants au fichier functions.php de votre thème :

// remove version in public html
remove_action("wp_head", "wp_generator");
// remove version in rss feed
function wpt_remove_version() {
return ''; }
add_filter('the_generator', 'wpt_remove_version');

Cette protection est aussi disponible dans Woodkit (depuis la v 1.2.14)

2- Désactiver l’éditeur de fichiers

Ajouter ce code dans votre fichier wp-config.php (racine de votre site (via FTP / SSH))

define('DISALLOW_FILE_EDIT',true);

3- Protéger votre formulaire de login contre les attaques par « force brute »

ce qui limite le nombre de tentative de connexion, en installant Woodkit ou Login Lock Down

3- Ajouter un Captcha sur tous les formulaires de votre site

En installant Woodkit ou Google Re-Captcha.

4- Protéger certains fichiers sensibles

en modifiant votre fichier .htaccess (racine de votre site (via FTP / SSH))

# Protect wp-config file
<files wp-config.php>
order allow,deny
deny from all
</files>
# Protect htaccess file
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
# Protect xmlrpc.php file - only if unused (no webservices on your site)
<files xmlrpc.php>
order allow,deny
deny from all
</files>
# Protect wp-comments-post.php file - only if unused (no comments on your site)
<files wp-comments-post.php>
order allow,deny
deny from all
</files>

5- Personnaliser les messages d’erreur 403 (Accès interdit)

En ajoutant la ligne suivante à votre fichier .htaccess (racine de votre site (via FTP / SSH))

# Customize 403 Error
ErrorDocument 403 "Error 403: Forbidden Access"

6- Passer au protocole sécurisé HTTPS

Faire ce qu’il faut chez votre hébergeur, souvent le certificat est gratuit pour un nom de domaine. Pour plus d’information sur le protocole HTTPS, lisez cet article.
Puis faire une redirection 301 en éditant votre fichier .htaccess (permet de ne pas perdre les URL déjà indexées et de garder votre référencement) – n’oubliez pas de répercuter ce changement dans votre Google Search Console ou encore Google Analytics/Tags Manager.

# Redirect all HTTP requests to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.mingzi.fr/$1 [R=301,L]
</IfModule>

7- Parametrez vos entêtes HTTP

En installant Woodkit ou Security Headers ou en éditant votre fichier .htaccess (racine de votre site (via FTP / SSH)) pour ajouter les instructions suivantes :

<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
Header always append X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options nosniff
Header set X-Powered-By: unknown
</IfModule>

Pour tout comprendre : https://www.alsacreations.com/article/lire/1723-tour-horizon-https-et-en-tetes-de-securite.html

8- Protégez l’affichage de vos répertoires

Lorsqu’il n’y a pas de fichier index.php ou index.html à la racine d’un dossier de votre site Web, par défaut Apache affiche la liste des fichiers et sous-dossiers du dossier. Par exemple si vous accédez à l’URL de votre site : https://www.yourdomainname.com/wp-content/uploads/ – et bien vous obtiendrez la liste complète du répertoire uploads/ de votre site.

Pour vous prémunir de cela, il vous suffit d’ajouter l’instruction suivante à votre fichier .htaccess (racine de votre site (via FTP / SSH)) :

# Protect folder listing
Options All -Indexes

9- Supprimer le fichier readme.html

Supprimer le fichier readme.html (racine de votre site (via FTP / SSH)). Ce fichier est ajouté par l’installation WordPress.

10- Aller encore plus loins…