Me preguntaba si existe algún riesgo de seguridad relacionado con aumentar el client_max_body_size en nginx de 1 MB a 20 GB.
Me preguntaba si existe algún riesgo de seguridad relacionado con aumentar el client_max_body_size en nginx de 1 MB a 20 GB.
La configuración de client_max_body_size
a 20 GB no es, obviamente, razonable y me pregunto por qué permitiría (¿usuarios ?, ¿usted mismo?) cargar archivos tan enormes.
client_max_body_size
gobierna el parámetro correspondiente del encabezado HTTP. Como una buena práctica de seguridad, siempre debemos limitar el encabezado y el cuerpo del mensaje a una longitud mínima razonable. Por qué ? 20 GB es tan grande que coloca su servidor en el mismo escenario que 2013 cuando Django Permitió a los usuarios utilizar una contraseña muy larga que obliga a Django (en lugar del servidor donde está alojado) a realizar cálculos hash muy costosos, lo que, como puede suponer, a un denegación de servicio contra todo el marco de autenticación de Django.
Esto se dice, hay otras cosas en las que debes pensar si aumentas demasiado el tamaño de client_max_body_size
. Por ejemplo, ¿cómo establecerá el parámetro keepalive_timeout
? ¿Cómo podría calcularlo basándose en el hecho de que client_max_body_size
está configurado en 20 GB? ¿Pueden ser 20 segundos? 20 minutos ? Dos horas ? La misma pregunta concierne a client_header_timeout
y client_body_timeout
que establece, respectivamente, establece la cantidad máxima de tiempo que Nginx esperará al cliente para especificar un encabezado de solicitud o solicitar que se sirva un objeto.