TsgcWebSocketHTTPServerProprietà › MaxRequestBodySize

MaxRequestBodySize Proprietà

Dimensione massima in byte di un corpo di richiesta HTTP in ingresso; protegge il server dagli attacchi di esaurimento della memoria.

Sintassi

property MaxRequestBodySize: Int64 read GetMaxRequestBodySize write SetMaxRequestBodySize;

Valore predefinito

67108864 (64 MB). Utilizzare 0 per illimitato.

Note

MaxRequestBodySize limita la dimensione di un corpo di richiesta HTTP in ingresso. Senza un tale limite un client può dichiarare un Content-Length enorme e inviare in streaming un corpo illimitato al server per esaurirne la memoria. Quando la dimensione del corpo dichiarata di una richiesta supera questo limite, il server rifiuta la richiesta con lo stato HTTP 413 (Payload Too Large) invece di bufferizzarla, quindi il tentativo viene fermato prima che avvenga qualsiasi allocazione di grandi dimensioni.

Il valore predefinito di 64 MB è sicuro per la stragrande maggioranza delle applicazioni. Aumentarlo se l'applicazione accetta legittimamente caricamenti di grandi dimensioni tramite HTTP POST, oppure ridurlo per restringere il limite di memoria su un server esposto pubblicamente. Un valore di 0 disabilita completamente il limite (non consigliato su un server raggiungibile da reti non attendibili). Questo limite è indipendente da MaxMessageSize, che limita i messaggi WebSocket in ingresso anziché i corpi delle richieste HTTP.

Esempio


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;

Torna alle Proprietà