Des milliers de requêtes POST sur xmlrpc.php, un site qui rame, du CPU à fond — ton WordPress est probablement attaqué par brute-force. Voici comment stopper ça et sécuriser le site.

Comment savoir si tu es attaqué ?

Les signes : site lent, consommation CPU élevée, et dans les logs d'accès Apache/Nginx :

185.xx.xx.xx - - "POST /xmlrpc.php HTTP/1.1" 200 4812
91.xx.xx.xx  - - "POST /xmlrpc.php HTTP/1.1" 200 4812
203.xx.xx.xx - - "POST /xmlrpc.php HTTP/1.1" 200 4812

Plein d'IPs différentes, toutes en POST sur xmlrpc.php, avec un code 200 (le serveur répond sans broncher). Ce sont des bots qui testent des combinaisons login/mot de passe via la méthode wp.getUsersBlogs.

Comment bloquer xmlrpc.php ?

Sur Apache — ajoute dans ton .htaccess :

<Files xmlrpc.php>
  Require all denied
</Files>

Sur Nginx :

location = /xmlrpc.php {
    deny all;
    return 403;
}
💡 Est-ce que ça casse quelque chose ? XML-RPC est utilisé par l'app mobile WordPress et Jetpack. Si tu n'utilises ni l'un ni l'autre, tu peux le bloquer sans impact.

Comment bloquer aussi la REST API ?

Le problème : par défaut, WordPress expose la liste de tes utilisateurs publiquement :

curl https://tonsite.be/wp-json/wp/v2/users
# Retourne les noms d'utilisateurs → l'attaquant a la moitié du travail fait

La solution : ajoute dans functions.php :

add_filter('rest_authentication_errors', function($result) {
    if (!is_user_logged_in()) {
        return new WP_Error('rest_not_logged_in',
            'API accessible uniquement aux utilisateurs connectés.',
            array('status' => 401));
    }
    return $result;
});

Comment vérifier s'il y a eu compromission ?

Même si tu as bloqué l'attaque, vérifie que rien n'a été compromis avant :

Comment sécuriser WordPress durablement ?

L'alternative : passer au statique

Si ton site n'a pas besoin de fonctionnalités dynamiques (commentaires, e-commerce, espace membre), un site statique HTML est objectivement plus sûr. Zéro PHP, zéro base de données, zéro surface d'attaque. C'est d'ailleurs ce qu'utilise BelgGeek.

🔧 Vérifie la sécurité de ton WordPress : InfraPulse scanne tes ports, headers de sécurité et configuration serveur en quelques minutes.