TsgcWebSocketLoadBalancerServer › Özellikler › StrictRequestParsing
İstek kaçırma (request-smuggling) saldırılarında kullanılan belirsiz HTTP isteklerini reddeder ve daha katı chunked-encoding doğrulaması uygular.
property StrictRequestParsing: Boolean read GetStrictRequestParsing write SetStrictRequestParsing;
True
StrictRequestParsing etkin olduğunda sunucu, HEM bir Content-Length HEM de bir Transfer-Encoding başlığı taşıyan herhangi bir HTTP isteğini HTTP durumu 400 (Bad Request) ile reddeder. Bu kombinasyon, istek gövdesinin nerede bittiği konusunda belirsizdir ve bir ön uç proxy ile arka uç sunucunun istek sınırları konusunda anlaşamadığı ve bir saldırganın proxy'nin yanından ikinci bir isteği kaçırdığı HTTP istek kaçırma (TE.CL / CL.TE desync) saldırılarının temelidir. Katı ayrıştırma ile sunucu ayrıca chunked transfer encoding'in daha sıkı doğrulamasını uygular, hatalı biçimlendirilmiş yığın boyutlarını ve trailer'ları reddeder.
Bu özellik varsayılan olarak etkindir ve güvenilmeyen ağlardan erişilebilen herhangi bir sunucuda, özellikle bir ters proxy veya yük dengeleyici arkasında bulunduğunda etkin kalmalıdır. Yalnızca her iki başlığı da meşru olarak gönderen, uyumsuz bir istemciyle birlikte çalışmak için devre dışı bırakın.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oServer.Port := 80;
// reject ambiguous Content-Length + Transfer-Encoding requests (HTTP 400)
oServer.StrictRequestParsing := true;
oServer.Active := true;