Zahlungsmethoden Abuse

Ошибка Anfrage-Header oder Cookie zu groß Nginx

01.02.2024, 23:37

Der Fehler"Anfrage-Header oder Cookie zu groß" in Nginx tritt auf, wenn die Größe von Anfrage-Headern oder Cookies die maximal zulässige Größe überschreitet, die in der Serverkonfiguration festgelegt ist. In diesem Artikel werden wir im Detail analysieren, warum dies geschieht.

Was bedeutet der Fehler "Request-Header oder Cookie zu groß" in Nginx?

Der Fehler tritt auf, wenn die Größe der HTTP/HTTPS-Anfrage-Header die zulässige Grenze überschreitet. Zum Beispiel sendet der Browser zu viele Cookies oder die an den Webserver gesendete Anfrage ist zu groß.

Die Anfrage ist in der Regel in zwei Teile gegliedert: die Header, in denen sich allgemeine Informationen und Metadaten befinden, und den Request Body. Sowohl der Request Body als auch die Header können unterschiedlich groß sein - sowohl klein als auch groß, und ihre Größe verursacht normalerweise keine Probleme. Wenn die Einstellungen des Webservers jedoch einen Parameter zur Begrenzung der Länge des Request Headers enthalten, wird dieser Fehler wahrscheinlich auftreten.

Wie kann man ihn beheben?

Es gibt mehrere Möglichkeiten, das Problem zu beheben

  1. Erhöhen Sie die maximale Größe von Headern und Cookies in der Nginx-Konfiguration. Fügen Sie dazu die folgenden Zeilen in die Konfigurationsdatei nginx.conf ein.
  2. Löschen Sie die Browser-Cookies. Wenn das Problem nur auf einem Computer oder Gerät auftritt, kann das Löschen des Browser-Cookies helfen.
  3. Verwenden Sie einen anderen Browser oder ein anderes Gerät. Wenn das Problem nur auf einem Browser oder Gerät auftritt, versuchen Sie, einen anderen Browser oder ein anderes Gerät zu verwenden.
  4. Verwenden Sie eine POST-Anfrage anstelle einer GET-Anfrage. Wenn das Problem beim Senden einer GET-Anforderung mit großen Parametern auftritt, können Sie versuchen, eine POST-Anforderung anstelle einer GET-Anforderung zu verwenden.
  5. Teilen Sie die Anfrage in mehrere kleinere Anfragen auf. Wenn es nicht möglich ist, die Serverkonfiguration zu ändern, können Sie versuchen, die Anfrage in mehrere kleinere Anfragen aufzuteilen, indem Sie diese nacheinander senden.

Um diesen Fehler zu beheben (wenn Sie ein Administrator des Nginx-Webservers sind), sollten Sie die maximale Header-Größe erhöhen, indem Sie den Parameter large_client_header_buffers ändern. Wenn Sie ein normaler Benutzer der Website sind, auf der dieser Fehler aufgetreten ist, sollten Sie warten, bis der Administrator der Ressource den Fehler behoben hat.

Korrektur auf Seiten des Nginx-Webservers

Sie müssen den Parameter large_client_header_buffers anpassen, der zwei Zahlen, z. B. 4 und 8 (die standardmäßig eingestellt sind), enthält. Die erste Zahl ist der Wert, der die maximale Anzahl von Puffern festlegt, und die zweite Zahl ist die Größe des Puffers, in den der Request-Header gelesen wird. Der zweite Parameter wird in Kilobytes angegeben.

Diese Zeile wird in den http-Abschnitt der Nginx-Konfigurationsdatei oder in den Server-Abschnitt für eine bestimmte Website eingefügt. Nginx-Website-Konfigurationsdateien werden normalerweise in /etc/nginx/conf.d/ oder /etc/nginx/sites-available/ gespeichert (je nachdem, wie Nginx installiert wurde - mit den Standard-Betriebssystem-Repositories oder mit dem Nginx-Repository).

Um den Wert anzupassen, können Sie die Zahlen 8 und 64 einstellen, die für die Speicherung großer Header geeignet sind. Der Parameter sieht dann wie folgt aus:

large_client_header_buffers 8 64k;

Sobald die Änderungen an der Konfigurationsdatei vorgenommen wurden, sollte Nginx mit dem Befehl neu gestartet werden:

sudo systemctl reload nginx

Dies sind die Methoden, um dieses Problem zu beheben.