Heim > Backend-Entwicklung > PHP-Tutorial > 3 Möglichkeiten, Hotlinking in Nginx zu verhindern

3 Möglichkeiten, Hotlinking in Nginx zu verhindern

WBOY
Freigeben: 2016-08-08 09:20:29
Original
1026 Leute haben es durchsucht

1: Der allgemeine Anti-Hotlink-Schutz ist wie folgt:

<code>location ~* \.(gif|jpg|png|swf|flv)$ { 
  valid_referers none blocked www<span>.jzxue</span><span>.com</span> jzxue<span>.com</span><span>; </span>
  if ($invalid_referer) { 
    rewrite ^/ http://www<span>.jzxue</span><span>.com</span>/retrun<span>.html</span><span>; </span><span>#return 403; </span>
  } 
} </code>
Nach dem Login kopieren

Erste Zeile: gif|jpg|png|swf|flv
Zeigt an, dass Dateien mit den Suffixen gif, jpg, png, swf und flv vor Hotlinking geschützt sind
Die zweite Zeile: gibt die Beurteilung der beiden Ursprünge von www.ingnix.com
an Der Inhalt von if{} bedeutet, dass, wenn die Quelle nicht die angegebene Quelle ist, zur Seite http://www.jzxue.com/retrun.html gesprungen wird. Natürlich ist es auch möglich, direkt zurückzukehren 403. von.

Zweitens: Hotlinking für Bildverzeichnisse verhindern

<code>location /images<span>/</span> { 
  alias /<span>data</span>/images<span>/</span>; 
  valid_referers <span>none</span> blocked server_names <span>*</span><span>.</span>xok<span>.</span>la xok<span>.</span>la ; 
  <span>if</span> (<span>$invalid_referer</span>) {<span>return</span><span>403</span>;} 
} </code>
Nach dem Login kopieren

Drittens: Verwenden Sie das Drittanbietermodul ngx_http_accesskey_module, um Nginx-Anti-Hotlinking zu implementieren
Die Implementierungsmethode lautet wie folgt:
1. Laden Sie die NginxHttpAccessKeyModule-Moduldatei herunter: http://wiki.nginx.org/File:Nginx-accesskey-2.0.3.tar.gz; 2. Suchen Sie nach dem Dekomprimieren dieser Datei die Konfigurationsdatei unter nginx-accesskey-2.0.3. Bearbeiten Sie diese Datei: Ersetzen Sie „$HTTP_ACCESSKEY_MODULE“ durch „ngx_http_accesskey_module“; 3. Kompilieren Sie Nginx mit den folgenden Parametern neu:

Sie müssen die oben genannten ursprünglichen Kompilierungsparameter hinzufügen und dann Folgendes ausführen: make && make install
<code>./configure --<span>add</span>-<span>module</span>=path/<span>to</span>/nginx-accesskey
<<pestd <span>add</span></code>
Nach dem Login kopieren

Ändern Sie die Conf-Datei von nginx und fügen Sie die folgenden Zeilen hinzu:
wobei:
<code><span>location</span> /download {
  <span>accesskey</span><span>on</span>;
  <span>accesskey_hashmethod</span> md5;
  <span>accesskey_arg</span><span>"key"</span>;
  <span>accesskey_signature</span><span>"mypass<span>$remote_addr</span>"</span>;
}</code>
Nach dem Login kopieren
accesskey ist der Modulschalter

accesskey_hashmethod ist die Verschlüsselungsmethode MD5 oder SHA-1; accesskey_arg ist der Schlüsselwortparameter in der URL; accesskey_signature ist ein verschlüsselter Wert, hier ist es eine Zeichenfolge bestehend aus mypass und access IP.
Greifen Sie auf das Testskript download.php zu:


Der Zugriff auf den ersten Link download_add_key kann normal heruntergeladen werden, aber der zweite Link download_org_path gibt einen 403 Forbidden-Fehler zurück.
Referenz:

NginxHttpAccessKeyModule
<code><span><span><?</span><span>$ipkey</span>= md5(<span>"mypass"</span>.<span>$_SERVER</span>[<span>'REMOTE_ADDR'</span>]);
<span>$output_add_key</span>=<span>"<a href=http://www.jzxue.com/download/G3200507120520LM.rar?key="</span>.<span>$ipkey</span>.<span>">download_add_key</a><br />";
<span>$output_org_url</span>=<span>"<a href=http://www.jzxue.com/download/G3200507120520LM.rar>download_org_path</a><br />"</span>;
<span>echo</span><span>$output_add_key</span>;
<span>echo</span><span>$output_org_url</span>;
<span>?></span></code>
Nach dem Login kopieren
http://xok.la/2009/03/nginx_http_accesskey_module_referer.html



Das Obige stellt die drei Methoden des Nginx-Anti-Hotlinking vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage