TsgcWebSocketLoadBalancerServerPropiedades › StrictRequestParsing

StrictRequestParsing Propiedad

Rechaza las peticiones HTTP ambiguas utilizadas en los ataques de contrabando de peticiones y aplica una validación más estricta de la codificación por fragmentos.

Sintaxis

property StrictRequestParsing: Boolean read GetStrictRequestParsing write SetStrictRequestParsing;

Valor Predeterminado

True

Observaciones

Cuando StrictRequestParsing está habilitado, el servidor rechaza, con el estado HTTP 400 (Bad Request), cualquier petición HTTP que incluya TANTO una cabecera Content-Length COMO una Transfer-Encoding. Esa combinación es ambigua respecto a dónde termina el cuerpo de la petición, y es la base de los ataques de contrabando de peticiones HTTP (desincronización TE.CL / CL.TE), en los que un proxy de front-end y el servidor de back-end discrepan sobre los límites de las peticiones y un atacante introduce de contrabando una segunda petición a través del proxy. Con el análisis estricto, el servidor también aplica una validación más estricta de la codificación de transferencia por fragmentos, rechazando tamaños de fragmento y trailers malformados.

Esta propiedad está habilitada de forma predeterminada y debería permanecer habilitada en cualquier servidor accesible desde redes no confiables, especialmente cuando se encuentra detrás de un proxy inverso o un equilibrador de carga. Deshabilítela únicamente para interoperar con un cliente no conforme que envíe legítimamente ambas cabeceras.

Ejemplo


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

Volver a Propiedades