Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Umfassendes Verständnis der Sicherheitsschutzstrategien von Nginx zur Begrenzung der Anfrageraten und zur Verhinderung böswilliger Anfragen

Umfassendes Verständnis der Sicherheitsschutzstrategien von Nginx zur Begrenzung der Anfrageraten und zur Verhinderung böswilliger Anfragen

PHPz
PHPzOriginal
2023-08-07 10:21:261049Durchsuche

Umfassendes Verständnis der Sicherheitsschutzstrategien von Nginx zur Begrenzung der Anforderungsraten und zur Verhinderung böswilliger Anforderungen.

Nginx ist ein leistungsstarker Open-Source-Webserver. Er kann nicht nur für die Bereitstellung statischer Websites, Reverse-Proxy und Lastausgleich verwendet werden durch eine Reihe von Sicherheitsschutzstrategien, um unsere Server vor böswilligen Anfragen zu schützen. Dieser Artikel konzentriert sich auf die Sicherheitsschutzstrategien von Nginx zur Begrenzung der Anforderungsraten und zur Verhinderung böswilliger Anforderungen und stellt relevante Codebeispiele bereit.

  1. Begrenzen Sie die Anfragerate

Böswillige Anfragen werden oft auf viele Arten mit hoher Frequenz initiiert und setzen den Server enorm unter Druck. Um eine Serverüberlastung zu vermeiden, können wir die Anfragerate mithilfe des Nginx-Moduls begrenzen .

In der Nginx-Konfigurationsdatei können Sie die Anweisung limit_req_zone verwenden, um einen gemeinsam genutzten Speicherbereich mit Anforderungsratenbegrenzung zu erstellen, zum Beispiel: limit_req_zone指令来创建一个请求速率限制的共享内存区域,例如:

http {
    limit_req_zone $binary_remote_addr zone=limit:10m rate=1r/s;
}

以上配置创建了一个10MB大小的内存区域,限制每秒钟从同一个客户端IP地址发起的请求数不超过1个。接下来,我们可以在具体的请求处理块中使用limit_req指令来应用这个限制,例如:

server {
    location /api/ {
        limit_req zone=limit burst=5;
        proxy_pass http://backend;
    }
}

以上配置表示在/api/路径下限制请求速率,并设置了一个突发限制值为5。这样一来,如果有大量的请求超过了限制速率,Nginx将返回503错误给客户端,并抛弃这些请求。

  1. 防止恶意请求

除了限制请求速率,我们还可以通过其他策略来防止恶意请求,例如:

  • IP白名单/黑名单:可以通过allowdeny指令来设置IP的访问控制,只允许白名单中的IP访问,或者拦截黑名单中的IP。例如:
location /admin/ {
    allow 192.168.1.0/24;
    deny all;
}

以上配置表示只允许IP在192.168.1.0/24网段内的访问/admin/路径。

  • URI黑名单:可以通过if指令和正则表达式来拦截恶意请求的URI。例如:
location / {
    if ($uri ~* "/wp-admin" ) {
        return 403;
    }
}

以上配置表示如果请求的URI中包含/wp-admin,则返回403错误。

  • Referer检查:可以通过检查请求头中的Referer字段来判断请求的来源是否合法。例如:
server {
    location / {
        if ($http_referer !~* "^https?://example.com") {
            return 403;
        }
    }
}

以上配置表示如果Referer字段不是以http://example.comhttps://example.comrrreee

Die obige Konfiguration erstellt einen 10 MB großen Speicherbereich, der pro Sekunde begrenzt ist Die Anzahl der von derselben Client-IP-Adresse initiierten Anfragen darf 1 nicht überschreiten. Als Nächstes können wir die Anweisung limit_req im spezifischen Anforderungsverarbeitungsblock verwenden, um dieses Limit anzuwenden, zum Beispiel:

rrreee

Die obige Konfiguration zeigt an, dass Anforderungen unter /api/ begrenzt sind. Code> Pfadrate und legen Sie einen Burst-Grenzwert von 5 fest. Wenn auf diese Weise eine große Anzahl von Anfragen die Grenzrate überschreitet, gibt Nginx einen 503-Fehler an den Client zurück und verwirft diese Anfragen. <p></p> <ol start="2">Böswillige Anfragen verhindern<p></p>🎜Neben der Begrenzung der Anfragerate können wir böswillige Anfragen auch durch andere Strategien verhindern, wie zum Beispiel: 🎜</ol> <ul>🎜IP-Whitelist/Blacklist: Sie können bestehen <code die anweisungen>allow und deny werden verwendet, um die IP-Zugriffskontrolle festzulegen und nur den IP-Zugriff in der Whitelist zuzulassen oder IPs in der Blacklist zu blockieren. Zum Beispiel: 🎜rrreee🎜Die obige Konfiguration bedeutet, dass nur IPs im Netzwerksegment 192.168.1.0/24 auf den Pfad /admin/ zugreifen dürfen. 🎜
    🎜URI-Blacklist: Sie können böswillig angeforderte URIs über die if-Direktive und reguläre Ausdrücke abfangen. Zum Beispiel: 🎜
rrreee🎜Die obige Konfiguration bedeutet, dass ein 403-Fehler zurückgegeben wird, wenn der angeforderte URI /wp-admin enthält. 🎜
    🎜Referer-Prüfung: Sie können feststellen, ob die Quelle der Anfrage legal ist, indem Sie das Referrer-Feld im Anfrage-Header überprüfen. Zum Beispiel: 🎜
rrreee🎜Die obige Konfiguration bedeutet, dass das Referrer-Feld nicht mit http://example.com oder https://example.com beginnt. Code>, es wird ein 403-Fehler zurückgegeben. 🎜🎜Zusammenfassend bietet Nginx eine Fülle von Sicherheitsschutzstrategien zur Begrenzung der Anfrageraten und zur Verhinderung böswilliger Anfragen. Durch die richtige Konfiguration von Nginx können wir den Server vor böswilligen Anfragen schützen und die Stabilität und Sicherheit des Servers verbessern. 🎜🎜Das Obige ist eine Einführung in das tiefgreifende Verständnis der Sicherheitsschutzstrategien von Nginx zur Begrenzung der Anfrageraten und zur Verhinderung böswilliger Anfragen. Ich hoffe, es wird den Lesern hilfreich sein. 🎜🎜 (Hinweis: Die oben genannten Beispiele sind nur Codebeispiele und möglicherweise nicht vollständig auf die Produktionsumgebung anwendbar. Bitte konfigurieren Sie sie entsprechend der tatsächlichen Situation und der offiziellen Dokumentation von Nginx.) 🎜

Das obige ist der detaillierte Inhalt vonUmfassendes Verständnis der Sicherheitsschutzstrategien von Nginx zur Begrenzung der Anfrageraten und zur Verhinderung böswilliger Anfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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