2 votes

Comment refuser les demandes dans nginx lorsqu'il n'y a pas de referer ?

Dans nginx access.log, je vois de nombreuses lignes comme :

1.2.3.4 - - [19/Oct/2014:22:48:11 -0400] "POST /someurl/suburl HTTP/1.1" 200 19967 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2"

Le seul point commun entre eux est le "-" (qui, je suppose, signifie qu'aucun référent n'est défini).

J'ai donc essayé de refuser ces demandes en utilisant :

if ($http_referer ~ ^(-))
    {  return 444;
}

Cependant, comme vous le voyez ci-dessus, cela ne fonctionne pas pour les requêtes POST.

8voto

Ed Ball Points 1341

Le problème que vous rencontrez est que nginx ne voit pas un référent de "-", il l'utilise simplement dans le journal pour contrôler les applications d'analyse du journal qui attendent un référent. Cela arrêtera pratiquement tous ceux qui tapent l'URL à la main ou qui l'ajoutent à leurs signets.

Essayez ceci

 if ($http_referer = "") {  return 403; }

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X