web-dev-qa-db-ja.com

client_max_body_size nginxを上げることによるセキュリティリスクはありますか?

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_timeoutclient_body_timeoutに関係します。それぞれ、Nginxがクライアントでリクエストヘッダーを指定するか、オブジェクトの提供を要求するまで待機する最大時間を設定します。

5
user45139