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

Win2008 R2 MySQL 5.5 ZIP-Format MySQL-Installation und -Konfiguration

Installation und Konfiguration von MySQL im ZIP-F...

Detaillierte Erklärung der HTML-Formularelemente (Teil 2)

HTML-Eingabeattribute Das Value-Attribut Das Valu...

Grundlegende Syntax und Funktionsweise der MySQL-Datenbank

Grundlegende Syntax der MySQL-Datenbank DDL-Opera...

Detaillierte Erklärung der Bind-Mounts für die Docker-Datenspeicherung

Bevor Sie diesen Artikel lesen, hoffe ich, dass S...

Optionsfelder und Multiple-Choice-Schaltflächen werden mit Bildern gestaltet

Ich habe schon Leute fragen hören, wie man Options...