Maison  >  Article  >  Opération et maintenance  >  Comment configurer Referer dans Nginx pour empêcher le vol d'images

Comment configurer Referer dans Nginx pour empêcher le vol d'images

WBOY
WBOYavant
2023-05-12 18:52:061628parcourir

Si les images du serveur sont liées par d'autres sites Web, cela affectera la bande passante et la vitesse d'accès du serveur. À ce stade, nous devons définir la fonction anti-hotlinking du fichier image ou du fichier vidéo ; signifie que vous pouvez accéder directement à cette ressource, mais vous ne pouvez pas mettre le lien de ma ressource sur votre propre serveur pour que d'autres puissent y accéder, en particulier les fichiers volumineux tels que des images ou des vidéos, ce qui peut facilement ralentir la réponse du serveur.

S'il ne s'agissait pas d'un lit à images, j'aurais vraiment peur que d'autres sites Web utilisent directement les images de ce site. Ce type de trafic risque de disparaître d’un seul coup. Après tout, les CDN sont achetés avec de l’argent gratuit. Il est donc préférable de mettre en place un lien anti-hot, nginx peut compléter cette fonction.

De manière générale, les navigateurs conformes au protocole http apporteront l'URL du site Web actuel lors de l'accès au site Web B à partir du site Web a pour indiquer l'origine du clic. Par conséquent, ce module de nginx s'appuie également sur cela pour l'implémenter, donc si le pirate informatique n'ajoute pas cet en-tête, il ne peut toujours pas profiter de l'image antivol. La documentation du site officiel de

nginx est la suivante :

syntaxe : valid_referers none | Module nginx ngx _http_referer_module Il est généralement utilisé pour bloquer les demandes de noms de domaine provenant de sources illégales. Nous devons garder à l'esprit que dissimuler l'en-tête du référent est une question très simple, ce module ne peut donc être utilisé que pour bloquer la plupart des demandes illégales. gardez à l'esprit que certaines requêtes légitimes ne porteront pas l'en-tête source du référent, donc parfois ne rejetez pas les requêtes avec un en-tête source vide (référent)

Par conséquent, nous pouvons ajouter du code dans le serveur ou le bloc d'emplacement. Je l'ai enregistré sous valid_referers.conf :

valid_referers none blocked server_names;

if ($invalid_referer) {
 return 403;
}

Ensuite, dans Add, incluez /etc/nginx/valid_referers.conf si nécessaire. Bien sûr, la condition préalable à l'exécution de ceci est que valid_referers.conf ait été placé dans le chemin /etc/nginx/valid_referers.conf sur la machine correspondante.

Exemple :
 location /articles/img {
  include /etc/nginx/valid_referers.conf;
  root /data/blog/code;
 }

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer