Je remarque une augmentation des commandes POST à distance à mon wp-login.php (principalement pour tenter une réinitialisation de mot de passe). Alors que je me suis protégé contre l'usurpation de l'adresse de réponse, il est toujours agaçant que je les reçoive. Ainsi, la recherche dans les journaux, je remarque ces demandes sont tous les sites distants l'envoi d'une commande POST:nginx refuser POST à wp-login.php sauf sur la même page
POST /wp-login.php?action=lostpassword HTTP/1.1" 302 5 "-" "-"
Donc ce que je veux faire est de configurer nginx pour bloquer toute commande POST qui ne vient pas du mot de passe perdu lien cliqué sur la page wp-login.php elle-même. Est-ce possible?
J'ai d'abord essayé d'utiliser les éléments suivants (proposé sur le site Wordpress), mais il n'empêche pas accès à cette page (testé POSTMAN):
location ~* (wp-comments-posts|wp-login)\.php$ {
if ($http_referer !~ ^(https://example.com)) {
return 405;
}
}
Puis, remarquant que j'ai un autre bloc dans ce le fichier comme ceci:
location = /wp-login.php {
limit_req zone=one burst=1 nodelay;
include fastcgi_params;
fastcgi_pass php7;
}
J'ai essayé de le modifier de la manière suivante:
location = /wp-login.php {
limit_req zone=one burst=1 nodelay;
include fastcgi_params;
fastcgi_pass php7;
if ($http_referer !~ ^(https://example.com)) {
return 405;
}
}
mais cela bloque tout le monde, même dans le navigateur, ce qui n'est pas ce que je veux. Est-il impossible de bloquer l'accès à wp-login.php?action=lostpassword
par quiconque ne vient pas du lien de mot de passe perdu sur wp-login.php dans le navigateur?
J'essayais d'éviter de renommer les pages de connexion, mais j'ai conclu que vous avez raison, et je suis allé dans cette direction. Merci! – Stephen