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:
<code>./configure --<span>add</span>-<span>module</span>=path/<span>to</span>/nginx-accesskey <<pestd <span>add</span></code>
<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_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:
<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>
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.