Nginx Interdiction d'exclusion de la hotline

J'essaie de réaliser la protection du téléchargement de l'hotlinging.

J'ai ce code

    location /download/ {
valid_referers blocked server_names *.example.com;

if ($invalid_referer) {
return 403;
}

Cela fonctionne bien, cela vous permet de spécifier un domaine et de bloquer tout ce qui manque valid_referers. Quel est le problème? Je souhaite mettre en œuvre l'adresse IP spécifiée, qui est autorisée à utiliser non référence, et le reste le bloquer.

C'est ce que le magazine montre.

1.2.3.4 - - - "GET file.doc HTTP / 2.0" 200 13050 "-" "-"

Je veux seulement 1.2.3.4 Ne prenez pas un seul référent.
Invité:

Hannah

Confirmation de:

Pour empêcher d'hurler suffisamment d'ondulations autorisées des rangées vides du référent (Téléchargements directs). Par conséquent, votre configuration peut ressembler à ceci:

valid_referers none blocked server_names *.example.com;

Les navigateurs ajoutent toujours un titre Referer Aux demandes d'images lors du téléchargement d'images intégrées dans des pages Web.

Si vous voulez vraiment bloquer la charge d'image directe, vous devez utiliser quelque chose de similaire dans

http

Niveau de configuration nginx:

geo $blocked {
default 1;
1.2.3.4 0;
}

Et puis B.

server

bloquer:

location /download/ {
valid_referers blocked server_names *.example.com;

set $refblocked $invalid_referer$blocked;

if ($refblocked = "11") { # If value of both $invalid_referer and $blocked are 1, block access.
return 403;
}
}

Ici

geo

Le module est utilisé pour afficher l'adresse IP à la valeur de la variable et

set

Utilisé pour rejoindre

$invalid_referer

et

$blocked

dans une variable qui est cochée dans

if

déclaration.

Je n'ai moi-même pas testé cette configuration précise, mais le principe devrait fonctionner.

Pour répondre aux questions, connectez-vous ou registre