J'ai déjà ajouté ce qui suit à ma configuration nginx pour traiter les domaines falsifiés :
if ($host !~* ^(.*example.org|\d+\.\d+\.\d+\.\d+)$ ) {
return 444;
}
Actuellement, cela autorise les adresses IP car je dois les accepter pour certaines requêtes.
C'est derrière un AWS ELB, donc il doit également répondre à une adresse IP.
Idéalement, j'aimerais qu'il n'accepte que sa propre adresse IP publique et sa propre adresse IP privée. Cependant, je ne veux pas le coder en dur dans la configuration car ce sont des instances AWS.
Donc je me demande si quelqu'un a trouvé une solution pour bloquer les en-têtes host falsifiés qui sont limités aux adresses IP souhaitées.
La meilleure idée que je puisse proposer est un script qui génère les fichiers de configuration, ajoutant les bonnes adresses IP au démarrage, puis les copiant dans le dossier de configuration nginx. Mais j'ai l'impression qu'il doit y avoir une solution plus élégante qui ne nécessite pas que j'écrive un script de démarrage.
Pourquoi
Comme quelqu'un a demandé pourquoi je veux faire cela, j'ai essentiellement deux objectifs :
- éliminer les erreurs Django que je reçois en raison des erreurs SuspiciousOperation HOST_HEADER
- empêcher les bots (qui constituent 99,9% de ces requêtes falsifiées) d'atteindre même ma couche d'application web.