TsgcHTTPServer › 속성 › MaxRequestBodySize

MaxRequestBodySize 속성

인바운드 HTTP 요청 본문의 최대 크기(바이트)이며, 메모리 고갈 공격으로부터 서버를 보호합니다.

구문

property MaxRequestBodySize: Int64 read GetMaxRequestBodySize write SetMaxRequestBodySize;

기본값

67108864 (64MB). 무제한으로 하려면 0을 사용하십시오.

설명

MaxRequestBodySize는 인바운드 HTTP 요청 본문의 크기를 제한합니다. 이러한 제한이 없으면 클라이언트가 거대한 Content-Length를 선언하고 서버에 무제한 본문을 스트리밍하여 메모리를 고갈시킬 수 있습니다. 요청이 선언한 본문 크기가 이 한도를 초과하면, 서버는 이를 버퍼링하는 대신 HTTP 상태 413(Payload Too Large)으로 요청을 거부하므로, 큰 할당이 발생하기 전에 시도가 중단됩니다.

기본값인 64MB는 대다수의 애플리케이션에 안전합니다. 애플리케이션이 HTTP POST를 통해 정당하게 큰 업로드를 받아들여야 한다면 값을 늘리고, 공개 서버의 메모리 한도를 더 엄격히 하려면 값을 낮추십시오. 값 0은 한도를 완전히 비활성화합니다(신뢰할 수 없는 네트워크에서 접근 가능한 서버에는 권장하지 않습니다).

예제


oServer := TsgcHTTPServer.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;

속성으로 돌아가기