TsgcWebSocketHTTPServerプロパティ › MaxRequestBodySize

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;

プロパティに戻る