TsgcWebSocketHTTPServer › プロパティ › MaxRequestBodySize
受信HTTPリクエストボディの最大サイズ(バイト単位)。メモリ枯渇攻撃からサーバーを保護します。
property MaxRequestBodySize: Int64 read GetMaxRequestBodySize write SetMaxRequestBodySize;
67108864(64 MB)。無制限にするには0を使用します。
MaxRequestBodySizeは受信HTTPリクエストボディのサイズを制限します。このような制限がないと、クライアントは巨大なContent-Lengthを宣言し、サーバーに対して無制限のボディをストリーミングしてメモリを枯渇させることができます。リクエストの宣言されたボディサイズがこの制限を超えると、サーバーはそれをバッファリングせずにHTTPステータス413(Payload Too Large)でリクエストを拒否するため、大きな割り当てが行われる前に試行が停止されます。
デフォルトの64 MBは大多数のアプリケーションにとって安全です。アプリケーションがHTTP POSTを通じて大きなアップロードを正当に受け付ける場合は引き上げ、外部公開サーバーでメモリ境界を厳しくする場合は引き下げてください。値0は制限を完全に無効にします(信頼できないネットワークから到達可能なサーバーでは推奨されません)。この制限はMaxMessageSizeとは独立しており、後者はHTTPリクエストボディではなく受信WebSocketメッセージを制限します。
oServer := TsgcWebSocketHTTPServer.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;