nginxのclient_max_body_sizeを1MBから20GBに上げることに関連するセキュリティリスクがあるかどうか疑問に思っていましたか?
client_max_body_size
を20 GBに設定することは、当然、合理的ではなく、なぜこのように非常に大きなファイルを(ユーザー?、自分?)にアップロードすることを許可するのでしょうか。
client_max_body_size
は、対応するHTTPヘッダーパラメータを管理します。セキュリティの良い習慣として、常にヘッダーとメッセージ本文を最小限の適切な長さに制限する必要があります。どうして ? 20 GBは非常に大きいため、サーバーを 2013 when Django と同じシナリオに置くと、ユーザーは非常に長いパスワードを使用できますDjango(サーバーではなく非常に高価なハッシュ計算を実行して、ご想像のとおり、Djangoの認証フレームワーク全体に対して denial-of-service 攻撃を仕掛けます。
これは、client_max_body_size
のサイズを大きくしすぎると、他にも考慮する必要があると言われています。たとえば、keepalive_timeout
パラメータをどのように設定しますか? client_max_body_size
が20 GBに設定されているという事実に基づいてどのように計算できますか? 20秒かもしれませんか? 20分 ? 2時間 ?同じ質問がclient_header_timeout
とclient_body_timeout
に関係します。それぞれ、Nginxがクライアントでリクエストヘッダーを指定するか、オブジェクトの提供を要求するまで待機する最大時間を設定します。