TsgcWebSocketHTTPServerEigenschaften › StrictRequestParsing

StrictRequestParsing Eigenschaft

Weist mehrdeutige HTTP-Anfragen ab, die bei Request-Smuggling-Angriffen verwendet werden, und wendet eine strengere Validierung der Chunked-Codierung an.

Syntax

property StrictRequestParsing: Boolean read GetStrictRequestParsing write SetStrictRequestParsing;

Standardwert

True

Hinweise

Wenn StrictRequestParsing aktiviert ist, weist der Server mit dem HTTP-Status 400 (Bad Request) jede HTTP-Anfrage ab, die SOWOHL einen Content-Length- ALS AUCH einen Transfer-Encoding-Header trägt. Diese Kombination ist mehrdeutig hinsichtlich der Stelle, an der der Anfrage-Body endet, und sie ist die Grundlage von HTTP-Request-Smuggling-Angriffen (TE.CL / CL.TE-Desync), bei denen ein Front-End-Proxy und der Back-End-Server über die Anfragegrenzen uneins sind und ein Angreifer eine zweite Anfrage am Proxy vorbeischmuggelt. Bei strikter Verarbeitung wendet der Server außerdem eine strengere Validierung der Chunked-Transfer-Codierung an und weist fehlerhafte Chunk-Größen und Trailer ab.

Diese Eigenschaft ist standardmäßig aktiviert und sollte auf jedem aus nicht vertrauenswürdigen Netzwerken erreichbaren Server aktiviert bleiben, insbesondere wenn er hinter einem Reverse-Proxy oder Load Balancer steht. Deaktivieren Sie sie nur, um die Interoperabilität mit einem nicht konformen Client herzustellen, der berechtigterweise beide Header sendet.

Beispiel


oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Port := 80;
// reject ambiguous Content-Length + Transfer-Encoding requests (HTTP 400)
oServer.StrictRequestParsing := true;
oServer.Active := true;

Zurück zu Properties