Accueil > WordPress > Protéger WordPress contre les attaques sur xmlrpc

Protéger WordPress contre les attaques sur xmlrpc

lundi 29 août 2016, par Philippe Donnart

Voici une idée pour se protéger des attaques sur xmlrpc.php sous WordPress

C’était devenu insupportable, tous les jours Wordfence m’adressait ce genre de message "
This email was sent from your website "xxxx" by the Wordfence plugin at Monday 29th of August 2016 at 02:39:53 PM
The Wordfence administrative URL for this site is : xxx.tld/wp-admin/admin.php ?page=Wordfence
A user with IP address 202.28.10.20 has been locked out from the signing in or using the password recovery form for the following reason : Exceeded the maximum number of login failures which is : 20. The last username they tried to sign in with was : ’superadmin’
User IP : 202.28.10.20
User hostname : 202.28.10.20
User location : Bangkok, Thailand"

J’ai décidé de tester une solution pour diminuer ce type d’attaque, à priori cela semble fonctionner.

Première étape ajouter le code suivant dans le .htaccess

# protect xmlrpc
<Files xmlrpc.php>
	Order Deny,Allow
	Deny from all
</Files>

Je l’ai retesté le 03/05/2020 sur le site de mes potes de Dax ... toujours efficace

Arrêt à 8h35

Ensuite, j’ai remarqué que les mêmes pénibles cherchaient à entrer via wp-admin, donc j’ai ajouté et paramétré le plugin SF Move Login.

Dans le .htaccess il faut ajouter (Si l’extension ne peut ajouter les nouvelles règles de réécriture à votre fichier) un bout de code qui ressemblera à ceci (valeurs par défaut) en remplacement des autres règles liées à Move Login si elles existent, au-dessus de la ligne # BEGIN WordPress.
Je vous conseille de modifier toutes les adresses.

# BEGIN SF Move Login
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^login/?$ wp-login.php [QSA,L]
    RewriteRule ^postpass/?$ wp-login.php?action=postpass [QSA,L]
    RewriteRule ^logout/?$ wp-login.php?action=logout [QSA,L]
    RewriteRule ^lostpassword/?$ wp-login.php?action=lostpassword [QSA,L]
    RewriteRule ^resetpass/?$ wp-login.php?action=resetpass [QSA,L]
    RewriteRule ^register/?$ wp-login.php?action=register [QSA,L]
</IfModule>
# END SF Move Login