Maison  >  Article  >  Opération et maintenance  >  Comment créer un service anti-sangsue de fichiers dans Nginx

Comment créer un service anti-sangsue de fichiers dans Nginx

WBOY
WBOYavant
2023-05-11 23:58:201191parcourir

Avant-propos

Tout le monde sait que de nombreux sites Web facturent désormais le téléchargement d'informations, qu'il s'agisse de points ou de pièces d'or, on ne peut que dire que c'est gratuit. Alors, comment ces sites Web empêchent-ils le vol de ressources ?

Ici, nous recommandons un artefact relativement facile à utiliser. nginx lui-même fournit secure_link pour compléter la fonction de prévention des hotlinks. Il peut ajouter des horodatages et vérifier les codes des liens de fichiers du serveur, protégeant ainsi les fichiers du serveur contre le téléchargement et le vol.

Diagramme de synchronisation

Comment créer un service anti-sangsue de fichiers dans Nginx

Configuration de nginx

Comment installer nginx ne sera pas décrit ici. N'oubliez pas d'activer ngx_http_secure_link_module lors de l'installation.

./configure --with-http_secure_link_module #编译nginx时加入

Détection de fin d'installation :

nginx -v

Si les instructions suivantes apparaissent, la configuration est réussie :

configure les arguments : --with-http_secure_link_module --prefix=/usr/local/nginx --with-http_stub_status_module

Configuration de l'instance le temps, où vérification La valeur sera comparée à la valeur de hachage md5 du paramètre spécifié dans secure_link_md5. Si les deux valeurs sont incohérentes, la valeur de la variable $secure_link est vide ; si les deux valeurs sont cohérentes, un contrôle d'expiration est effectué si elle a expiré, la valeur de la variable $secure_link est 0 ; ; s’il n’a pas expiré, c’est 1.

Si le lien est sensible au temps, alors l'heure d'expiration est définie avec un horodatage, déclaré après la valeur de hachage md5, séparé par des virgules. Si aucun délai d'expiration n'est défini, le lien est valable pour toujours.

secure_link_md5

Syntaxe : secure_link_md5 expression ;

Valeur par défaut : Aucune

Section de configuration : http, serveur, emplacement

expression spécifie les paramètres de calcul de la valeur de hachage md5 La valeur md5 sera comparée à celle. transmis dans l'URL. La valeur md5 est comparée et vérifiée. L'expression contient généralement l'uri (par exemple, l'uri demo.com/s/link est /s/link) et la clé de chiffrement secrète. Si le lien est sensible au temps, l'expression doit contenir $secure_link_expires. L'expression peut également ajouter des informations sur le client, telles que. comme l'adresse IP d'accès, les informations sur la version du navigateur, etc.

configuration du backend Java

cas, pour référence seulement :

server {
   listen    80;
   server_name download.52itstyle.com;
   charset utf-8;
   location / {
     #这里配置了2个参数一个是md5,一个是expires
     secure_link $arg_md5,$arg_expires;
     #md5的哈希格式为 secret+url+expires,expires为时间戳单位s,url为请求地址
     secure_link_md5 52itstyle$uri$arg_e;
     #这里我们的md5是我们按照secure_link_md5的方式计算的哈希,secure_link会比对它计算的哈希值是否与我们的md5参数一致
     if ($secure_link = "") {
       #资源不存在或哈希比对失败
       return 402;
     }
     if ($secure_link = "0") {
       #失效超时
       return 405;
     }
     #重命名文件名
     add_header content-disposition "attachment;filename=$arg_f";
     alias /data/site/down.52itstyle.com/;
   }
   error_page  500 502 503 504 /50x.html;
   error_page  402 405 /40x.html;
   location = /50x.html {
     root  html;
   }
   location = /40x.html {
     root  html;
   }
}

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