TsgcWebSocketHTTPServerWłaściwości › MaxRequestBodySize

MaxRequestBodySize Właściwość

Maksymalny rozmiar w bajtach przychodzącej treści żądania HTTP; chroni serwer przed atakami wyczerpującymi pamięć.

Składnia

property MaxRequestBodySize: Int64 read GetMaxRequestBodySize write SetMaxRequestBodySize;

Wartość domyślna

67108864 (64 MB). Użyj 0, aby uzyskać brak limitu.

Uwagi

MaxRequestBodySize ogranicza rozmiar przychodzącej treści żądania HTTP. Bez takiego ograniczenia klient może zadeklarować ogromny Content-Length i przesyłać nieograniczoną treść do serwera, aby wyczerpać jego pamięć. Gdy zadeklarowany rozmiar treści żądania przekracza ten limit, serwer odrzuca żądanie ze statusem HTTP 413 (Payload Too Large) zamiast go buforować, więc próba zostaje zatrzymana, zanim nastąpi jakakolwiek duża alokacja.

Domyślna wartość 64 MB jest bezpieczna dla zdecydowanej większości aplikacji. Zwiększ ją, jeśli aplikacja w uzasadniony sposób przyjmuje duże przesłania przez HTTP POST, lub zmniejsz, aby zacieśnić ograniczenie pamięci na serwerze dostępnym publicznie. Wartość 0 całkowicie wyłącza limit (niezalecane na serwerze osiągalnym z niezaufanych sieci). Limit ten jest niezależny od MaxMessageSize, który ogranicza przychodzące wiadomości WebSocket, a nie treści żądań HTTP.

Przykład


oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Port := 80;
// reject any HTTP request whose body is larger than 16 MB (HTTP 413)
oServer.MaxRequestBodySize := 16 * 1024 * 1024;
oServer.Active := true;

Wróć do Właściwości