Betaalmethoden Abuse

Ошибка request header of cookie te groot Nginx

01.02.2024, 23:37

De fout"request header of cookie te groot" in Nginx treedt op wanneer de grootte van request headers of cookies de maximaal toegestane grootte overschrijdt, die is ingesteld in de serverconfiguratie. In dit artikel analyseren we in detail waarom dit gebeurt.

Wat betekent de fout Request header of cookie te groot in Nginx?

De fout treedt op wanneer de grootte van HTTP/HTTPS request headers de toegestane limiet overschrijdt. De browser stuurt bijvoorbeeld te veel cookies of het verzoek dat naar de webserver wordt gestuurd is te groot.

Het verzoek bestaat meestal uit twee delen: headers - waar algemene informatie en metagegevens staan - en de verzoektekst. De body van het verzoek en de header kunnen verschillende groottes hebben - zowel klein als groot en de grootte veroorzaakt meestal geen problemen. Als de webserverinstellingen echter een parameter hebben om de lengte van de verzoekheader te beperken, is de kans groot dat u deze fout krijgt.

Hoe los je het op?

Er zijn verschillende manieren om het probleem op te lossen

  1. Verhoog de maximale grootte van headers en cookies in de Nginx configuratie. Voeg hiervoor de volgende regels toe aan het configuratiebestand nginx.conf.
  2. Verwijder browsercookies. Als het probleem zich slechts op één computer of apparaat voordoet, kan het wissen van de browsercookie helpen.
  3. Gebruik een andere browser of een ander apparaat. Als het probleem zich slechts op één browser of apparaat voordoet, probeer dan een andere browser of een ander apparaat te gebruiken.
  4. Gebruik een POST-verzoek in plaats van een GET-verzoek. Als het probleem optreedt bij het verzenden van een GET-verzoek met grote parameters, kunt u proberen een POST-verzoek te gebruiken in plaats van GET.
  5. Splits het verzoek op in meerdere kleinere verzoeken. Als het onmogelijk is om de serverconfiguratie te wijzigen, kunt u proberen het verzoek op te splitsen in meerdere kleinere verzoeken door ze achter elkaar te verzenden.

Om deze fout op te lossen (als je een beheerder van de Nginx webserver bent) moet je de maximale headergrootte verhogen door de parameter large_client_header_buffers te wijzigen. Als je een gewone gebruiker bent van de website waar deze fout is opgetreden, moet je wachten tot de beheerder van de bron de fout heeft gecorrigeerd.

Correctie van de Nginx webserver

Je moet de parameter large_client_header_buffers aanpassen, die 2 getallen bevat, bijvoorbeeld 4 en 8 (die standaard zijn ingesteld). Het eerste getal is de waarde die het maximale aantal buffers instelt en het tweede getal is de grootte van de buffer waarin de request header wordt gelezen. De tweede parameter wordt ingesteld in kilobytes.

Deze regel wordt toegevoegd aan de http sectie van het Nginx configuratiebestand of aan de server sectie voor een bepaalde site. Nginx website configuratiebestanden worden meestal opgeslagen in /etc/nginx/conf.d/ of /etc/nginx/sites-available/ (afhankelijk van hoe Nginx is geïnstalleerd - met behulp van standaard besturingssysteem repositories of met behulp van Nginx repository).

Om de waarde aan te passen kun je de getallen 8 en 64 instellen, geschikt voor het opslaan van grote headers. De parameter ziet er dan zo uit:

large_client_header_buffers 8 64k;

Zodra er wijzigingen zijn aangebracht in het configuratiebestand, moet Nginx opnieuw worden opgestart met het commando:

sudo systemctl reload nginx

Dit zijn de methoden om dit probleem op te lossen.