Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So fangen Sie einen bestimmten Benutzeragenten in Nginx ab

So fangen Sie einen bestimmten Benutzeragenten in Nginx ab

WBOY
WBOYnach vorne
2023-05-13 10:25:051257Durchsuche

Spezifische Benutzeragenten in Nginx auf die schwarze Liste setzen

Um die Sperrliste für Benutzeragenten zu konfigurieren, öffnen Sie die Nginx-Konfigurationsdatei Ihrer Website und suchen Sie den Abschnitt mit den Serverdefinitionen. Diese Datei kann je nach Nginx-Konfiguration oder Linux-Version an verschiedenen Orten abgelegt werden (z. B. /etc/nginx/nginx.conf, /etc/nginx/sites-enabled/,/usr /local/ nginx/conf/nginx.conf,/etc/nginx/conf.d/).

Kopieren Sie den Code. Der Code lautet wie folgt:

server {
listen 80 default_server;
server_name xmodulo.com;
root /usr/share/nginx/html;
....
}

Öffnen Sie die Konfigurationsdatei Suchen Sie den Serverabschnitt und fügen Sie die folgende if-Anweisung irgendwo im Abschnitt hinzu.

Kopieren Sie den Code. Der Code lautet wie folgt:

server {
listen 80 default_server;
server_name xmodulo.com; Sensibles Matching
                                                if ($http_user_agent ~ (antivirx|arian ) {
                 return 403; 
                                                                                                                                            return 403;
       }
       ... .

}

Wie Sie sich vorstellen können, verwenden diese if-Anweisungen reguläre Ausdrücke, um jede fehlerhafte Benutzerzeichenfolge abzugleichen und einen 403-HTTP-Statuscode an das übereinstimmende Objekt zurückzugeben. $http_user_agent ist eine Benutzeragentenzeichenfolge, die in der http-Anfrage enthalten ist Der Operator „~“ führt eine Übereinstimmung mit der Zeichenfolge des Benutzeragenten durch, während der Operator „~*“ eine Übereinstimmung unabhängig von der Groß- und Kleinschreibung durchführt, sodass Sie ihn in einer if-Anweisung verwenden können Blockieren Sie sie alle.

Nachdem Sie die Konfigurationsdatei geändert haben, müssen Sie Nginx neu laden, um die Blockierung zu aktivieren:

 $ sudo /path/to/nginx -s reload

Sie können dies tun, indem Sie die Option „--user-agent“ verwenden, um die Benutzeragentenblockierung zu testen

Verwalten der User-Agent-Blacklist in Nginx

Bisher habe ich gezeigt, wie man einige User-Agents für HTTP-Anfragen in Nginx blockiert.

Seit der User-Agent-Blacklist Wenn sie sehr groß werden, ist es keine gute Idee, sie im Serverteil von Nginx abzulegen. Stattdessen können Sie eine separate Datei erstellen, in der alle blockierten Benutzeragenten aufgeführt sind .rules und definieren Sie ein Diagramm, das alle blockierten Benutzeragenten im folgenden Format definiert:

 $ wget --user-agent "malicious bot" http://<nginx-ip-address>

Kopieren Sie den Code:

map $http_user_agent $badagent {So fangen Sie einen bestimmten Benutzeragenten in Nginx ab default 0;

~*bösartig 1;

~* Hintertür 1;                                         Die Zeile „Standard 0“ bedeutet, dass alle Benutzeragenten zugelassen werden, die nicht in anderen Dateien aufgeführt sind.

Öffnen Sie als Nächstes die Nginx-Konfigurationsdatei Ihrer Website, suchen Sie den Abschnitt mit http und fügen Sie dann irgendwo im http-Abschnitt die folgende Zeile hinzu.如 Kopieren Sie den Code wie folgt:

http {

.....

include /etc/nginx/useraurs.rules
}

Beachten Sie, dass die Include-Anweisung vor dem Server erscheinen muss (aus diesem Grund fügen wir sie hinzu). um es hinzuzufügen, um es hinzuzufügen, um es hinzuzufügen, um es dem http-Teil hinzuzufügen).

Öffnen Sie nun den Abschnitt der Nginx-Konfiguration, der Ihren Server definiert, und fügen Sie die folgende if-Anweisung hinzu:

Kopieren Sie den Code. Der Code lautet wie folgt:

server {

       ....

          if ($badagent) {

. ...
}

Zum Schluss Nginx neu laden.

 $ sudo /path/to/nginx -s reload

Jetzt wird jeder Benutzeragent, der in /etc/nginx/useragent.rules aufgeführte Schlüsselwörter enthält, automatisch von nginx gesperrt.

Das obige ist der detaillierte Inhalt vonSo fangen Sie einen bestimmten Benutzeragenten in Nginx ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen