Liste de renforcement WordPress avec correctifs à copier-coller
Les mises à jour comptent le plus. Ensuite, ces petits changements ferment les portes que les attaquants essaient en premier.
Le code et la configuration restent en anglais.
1. Gardez tout à jour
Activez les mises à jour automatiques des extensions et des thèmes (Extensions → Activer les mises à jour auto). Supprimez ce que vous n’utilisez pas : les extensions désactivées peuvent tout de même être exploitées.
2. Désactivez l’éditeur de fichiers intégré
Ajoutez ceci à wp-config.php, au-dessus de /* That’s all, stop editing! */ :
define( 'DISALLOW_FILE_EDIT', true );3. Bloquez XML-RPC (si vous ne l’utilisez pas)
Jetpack et certaines applications mobiles utilisent XML-RPC. Si ce n’est pas votre cas, bloquez-le au niveau du serveur :
<Files "xmlrpc.php">
Require all denied
</Files>location = /xmlrpc.php { deny all; }4. Cessez d’afficher les noms d’utilisateur
Masquez la liste des utilisateurs de l’API REST aux visiteurs non connectés (en extension must-use dans wp-content/mu-plugins/) :
<?php
add_filter( 'rest_endpoints', function ( $endpoints ) {
if ( ! is_user_logged_in() ) {
unset( $endpoints['/wp/v2/users'], $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
}
return $endpoints;
} );Vérifiez aussi que les archives d’auteur (/?author=1) ne révèlent pas les identifiants de connexion. Réglez le « Nom à afficher publiquement » de chaque utilisateur sur autre chose que l’identifiant.
5. Pas de PHP dans uploads
Le dossier uploads ne doit contenir que des médias. Placez ceci dans wp-content/uploads/.htaccess :
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>location ~* ^/wp-content/uploads/.*\.(php|phtml|phar)$ { deny all; }6. Protégez wp-config.php et les connexions
- Rendez
wp-config.phplisible uniquement par son propriétaire (droits600ou640, selon votre hébergeur). - Ne laissez jamais de copies
wp-config.php.bak,.oldou.zipà la racine web. - Utilisez l’authentification à deux facteurs et limitez les tentatives de connexion des comptes administrateurs.
- Laissez
WP_DEBUG_DISPLAYdésactivé en production, pour que les erreurs ne s’affichent jamais à l’écran.