TsgcWebSocketHTTPServer › Właściwości › MaxRequestBodySize
Maksymalny rozmiar w bajtach przychodzącej treści żądania HTTP; chroni serwer przed atakami wyczerpującymi pamięć.
property MaxRequestBodySize: Int64 read GetMaxRequestBodySize write SetMaxRequestBodySize;
67108864 (64 MB). Użyj 0, aby uzyskać brak limitu.
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.
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;