Detaillierte Erläuterung der Nginx-Anti-Hotlink- und Anti-Crawler-Konfiguration

Detaillierte Erläuterung der Nginx-Anti-Hotlink- und Anti-Crawler-Konfiguration

Erstellen Sie eine neue Konfigurationsdatei (gehen Sie beispielsweise in das Verzeichnis „conf“ im Nginx-Installationsverzeichnis und erstellen Sie: „agent_deny.conf“).

Deaktivieren Sie das Crawlen durch Tools wie Scrapy, if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; }

Zugriff mit angegebener UA oder leerer UA verbieten

#verboten Scrapy
wenn ($http_user_agent ~* (Scrapy|Curl|HttpClient))
{
  Rückgabe 403;
}

#verbotene UA
if ($http_user_agent ~ "Bytespider|FeedDemon|JikeSpider|Indy-Bibliothek|Alexa-Symbolleiste|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" )
{
  Rückgabe 403;
}

#verboten, kein Zugriff auf die Methode GET|HEAD|POST
wenn ($Anforderungsmethode !~ ^(GET|HEAD|POST)$)
{
  Rückgabe 403;
}

Fügen Sie dann den folgenden Code in den Serverabschnitt der Website-Konfiguration ein: include agent_deny.conf;

Starten Sie nginx neu:

/data/nginx/sbin/nginx -s neu laden

Der Test kann durchgeführt werden, indem man curl -A verwendet, um das Crawlen zu simulieren, zum Beispiel:

curl -I -A 'YYSpider' <<www.xxx.con>>

Ergebnis

[root@11 conf]# curl -I -A 'YYSpider' www.xxx.cn
HTTP/1.1 403 Verboten
Server: nginx/1.12.0
Datum: Mi, 24. April 2019 11:35:21 GMT
Inhaltstyp: text/html
Inhaltslänge: 169
Verbindung: Keep-Alive

Simulieren Sie einen Crawl mit leerem UA:

curl -I -A' ' <<www.xxx.cn>>

Ergebnis

[root@11 conf]# curl -I -A' ' www.xxx.cn
HTTP/1.1 403 Verboten
Server: nginx/1.12.0
Datum: Mi, 24. April 2019 11:36:06 GMT
Inhaltstyp: text/html
Inhaltslänge: 169
Verbindung: Keep-Alive

Simulieren Sie das Crawlen des Baidu Spider:

curl -I -A 'Baiduspider' <<<www.xxx.cn>>>

[root@11 conf]# curl -I -A 'Baiduspider' www.xxx.cn
HTTP/1.1 200 OK
Server: nginx/1.12.0
Datum: Mi, 24. April 2019 11:36:47 GMT
Inhaltstyp: text/html
Inhaltslänge: 612
Letzte Änderung: Fr, 12. April 2019 13:49:36 GMT
Verbindung: Keep-Alive
ETag: "5cb09770-264"
Akzeptierte Bereiche: Bytes

UA-Typ

FeedDemon-Inhaltssammlung BOT/0.1 (BOT für JCE) SQL-Injection CrawlDaddy-SQL-Injection Java-Inhaltssammlung Jullo-Inhaltssammlung Feedly-Inhaltssammlung UniversalFeedParser-Inhaltssammlung ApacheBench CC-Angreifer Swiftbot nutzloser Crawler YandexBot nutzloser Crawler AhrefsBot nutzloser Crawler YisouSpider nutzloser Crawler (wurde von UC Shenma Search erworben, dieser Spider kann freigegeben werden!)
jikeSpider nutzloser CrawlerMJ12bot nutzloser CrawlerZmEu phpmyadmin SchwachstellenscanWinHttp-Sammlungcc-AngriffEasouSpider nutzloser CrawlerHttpClient-TCP-AngriffMicrosoft URL Control-ScanYYSpider nutzloser Crawlerjaunty WordPress-Blasting-ScannoBot nutzloser CrawlerPython-urllib-InhaltssammlungIndy Library-ScanFlightDeckReports Bot nutzloser CrawlerLinguee Bot nutzloser Crawler

Nginx Anti-Hotlink-Konfiguration

Hintergrund: Um zu verhindern, dass Referenzlinks von Drittanbietern auf unsere Bilder zugreifen und Serverressourcen sowie Netzwerkverkehr verbrauchen, können wir auf dem Server Anti-Hotlink-Einschränkungen vornehmen.
Es gibt zwei Möglichkeiten, Hotlink-Schutz zu implementieren: Verweismethode und Signaturmethode.

Siehe Methode zum Erreichen von Anti-Hotlinking

Arbeitsmodul: ngx_http_referer_module.

Gültige Variablen: $invalid_referer, globale Variable.

Konfigurationsdomäne: Server, Standort

Konfiguration:

Server {
  hören Sie 80;
  Servername www.imcati.com refer-test.imcati.com;
  root /usr/share/nginx/html;
  Standort ~*\.(gif|jpg|jpeg|png|bmp|swf)$ {
    valid_referers, keine blockiert, www.imcati.com;
    wenn ($ungültiger_Referrer) {
      Rückgabe 403;
      }
   }
  }
  • valid_referers: Gibt an, dass der Ressourcenzugriff auf folgende Weise zulässig ist, z. B. über eine Whitelist. vaild_referers Gültige Referenzlinks wie folgt, andernfalls geben Sie $invaild_refere ein und geben Sie 403 Verboten zurück.
  • keine: Fehlenden Header-Zugriff zulassen.
  • blockiert: Lässt Anfragen ohne entsprechenden Referrer-Wert zu.
  • Servernamen: Wenn der Domänenname der verweisenden Site mit dem für den lokalen Computer in Servername konfigurierten Domänennamen übereinstimmt, wird der Zugriff zugelassen.

Dies ist das Ende dieses Artikels über die detaillierte Konfiguration von Nginx Anti-Hotlink und Anti-Crawler. Weitere relevante Inhalte zur Konfiguration von Nginx Anti-Hotlink und Anti-Crawler finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So implementieren Sie Anti-Hotlinking mit JSP
  • Einige Websites erlauben den JS-Cracking-Code für leere Referrer-Anti-Hotlink-Bilder
  • PHP-Implementierung eines Beispiels für eine Bild-Anti-Hotlink-Cracking-Operation [Lösung des Bild-Anti-Hotlink-Problems/Reverse-Proxy]
  • Führen Sie die folgenden Schritte aus, damit Nginx Anti-Hotlinking konfiguriert.
  • Detaillierte Erläuterung des Referrer-Prinzips und der Implementierungsmethode für den Bild-Hotlink-Schutz
  • So konfigurieren Sie Nginx's Anti-Hotlinking
  • Detaillierte Methode zur Verwendung von .htaccess zum Einrichten des Hotlink-Schutzes für Bilder
  • Analyse der PHP-Methode zur Implementierung von Anti-Hotlinking
  • Nginx verwendet Referrer-Direktive, um Anti-Hotlink-Konfiguration zu implementieren
  • Das Prinzip und die Cracking-Methode des JavaScript-Anti-Hotlinking

<<:  Vue verwendet ECharts zur Implementierung von Liniendiagrammen und Kreisdiagrammen

>>:  Detaillierte Erklärung der Speicher-Engine in MySQL

Artikel empfehlen

Verständnis und Anwendungsszenarien von ES6-Erweiterungsoperatoren

Inhaltsverzeichnis 1. Ersetzen Sie die Apply-Meth...

Detaillierte Erklärung der wechselseitigen Verwendung von Ref in React

Inhaltsverzeichnis 1. Lassen Sie uns zunächst erk...

Neue Features in MySQL 8: Unsichtbare Indizes

Hintergrund Indizes sind ein zweischneidiges Schw...

Zusammenfassung der Verwendung von Linux-SFTP-Befehlen

sftp ist die Abkürzung für Secure File Transfer P...

URL-Rewrite-Modul 2.1 URL-Rewrite-Modul – Regeln schreiben

Inhaltsverzeichnis Voraussetzungen Einrichten ein...

Docker5 - Vollfunktionaler Hafenlager-Bauprozess

Harbor ist ein Registry-Server auf Unternehmenseb...

JavaScript-Ereigniserfassungs-Blubbern und Erfassungsdetails

Inhaltsverzeichnis 1. Ereignisablauf 1. Konzept 2...

PHP-bezogene Pfade und Änderungsmethoden in der Ubuntu-Umgebung

PHP-bezogene Pfade in der Ubuntu-Umgebung PHP-Pfa...

5 Möglichkeiten zum Senden von E-Mails in der Linux-Befehlszeile (empfohlen)

Wenn Sie eine E-Mail in einem Shell-Skript erstel...

So verwenden Sie React-Color zum Implementieren des Front-End-Farbwählers

Hintergrund Wir können react-color verwenden, um ...