TsgcWebSocketLoadBalancerServer › Eigenschaften › MaxRequestBodySize
Maximale Größe eines eingehenden HTTP-Anfrage-Bodys in Bytes; schützt den Server vor Speichererschöpfungsangriffen.
property MaxRequestBodySize: Int64 read GetMaxRequestBodySize write SetMaxRequestBodySize;
67108864 (64 MB). Verwenden Sie 0 für unbegrenzt.
MaxRequestBodySize begrenzt die Größe eines eingehenden HTTP-Anfrage-Bodys. Ohne eine solche Begrenzung kann ein Client eine riesige Content-Length deklarieren und einen unbegrenzten Body an den Server streamen, um dessen Speicher zu erschöpfen. Wenn die deklarierte Body-Größe einer Anfrage dieses Limit überschreitet, weist der Server die Anfrage mit dem HTTP-Status 413 (Payload Too Large) ab, anstatt sie zu puffern, sodass der Versuch gestoppt wird, bevor eine große Speicherzuweisung erfolgt.
Der Standardwert von 64 MB ist für die überwiegende Mehrheit der Anwendungen sicher. Erhöhen Sie ihn, wenn Ihre Anwendung berechtigterweise große Uploads über HTTP POST entgegennimmt, oder verringern Sie ihn, um die Speichergrenze auf einem öffentlich erreichbaren Load Balancer enger zu fassen. Der Wert 0 deaktiviert das Limit vollständig (auf einem aus nicht vertrauenswürdigen Netzwerken erreichbaren Server nicht empfohlen). Dieses Limit ist unabhängig von MaxMessageSize, das eingehende WebSocket-Nachrichten und nicht HTTP-Anfrage-Bodies begrenzt.
oServer := TsgcWebSocketLoadBalancerServer.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;