TsgcWebSocketHTTPServer › 속성 › StrictRequestParsing
요청 스머글링 공격에 사용되는 모호한 HTTP 요청을 거부하고 더 엄격한 청크 인코딩 검증을 적용합니다.
__property bool StrictRequestParsing;
True
StrictRequestParsing이 활성화되어 있으면 서버는 Content-Length와 Transfer-Encoding 헤더를 모두 포함하는 HTTP 요청을 HTTP 상태 400(Bad Request)으로 거부합니다. 이 조합은 요청 본문이 어디에서 끝나는지에 대해 모호하며, HTTP 요청 스머글링(TE.CL / CL.TE 비동기화) 공격의 기반이 됩니다. 이러한 공격에서는 프런트엔드 프록시와 백엔드 서버가 요청 경계에 대해 의견이 일치하지 않아 공격자가 프록시를 통과하여 두 번째 요청을 밀반입합니다. 엄격한 파싱을 사용하면 서버는 청크 전송 인코딩에 대해서도 더 엄격한 검증을 적용하여, 잘못된 형식의 청크 크기와 트레일러를 거부합니다.
이 속성은 기본적으로 활성화되어 있으며, 신뢰할 수 없는 네트워크에서 접근 가능한 모든 서버, 특히 리버스 프록시나 로드 밸런서 뒤에 있는 서버에서는 활성화된 상태로 유지해야 합니다. 두 헤더를 모두 정당하게 보내는 비준수 클라이언트와 상호 운용해야 하는 경우에만 비활성화하십시오.
oServer = new TsgcWebSocketHTTPServer();
oServer->Port = 80;
oServer->StrictRequestParsing = true;
oServer->Active = true;