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

3 Möglichkeiten, Hotlinking in Nginx zu verhindern

WBOY
WBOYOriginal
2016-08-08 09:20:291022Durchsuche

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>

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>

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>

Ä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>
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>
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.

Stellungnahme:
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