input_size_validation

Installation
SKILL.md

input_size_validation

Sin límite de tamaño, un atacante puede enviar archivos de cientos de MB para saturar la memoria de los workers o el almacenamiento de MinIO. La validación de tamaño ocurre en dos capas: Nginx (antes de que el payload llegue a FastAPI) y FastAPI (validación de tipo y dimensiones de imagen).

When to use

Aplicar en Nginx como primera línea y en el endpoint de FastAPI que recibe las imágenes. Rechazar con 413 antes de leer el body completo.

Instructions

  1. En Nginx: client_max_body_size 20M; — rechaza con 413 sin pasar al upstream.
  2. En FastAPI, validar el campo UploadFile:
    MAX_IMAGE_SIZE = 10 * 1024 * 1024  # 10 MB por imagen
    async def validate_image(file: UploadFile):
        content = await file.read(MAX_IMAGE_SIZE + 1)
        if len(content) > MAX_IMAGE_SIZE:
            raise HTTPException(413, "Imagen demasiado grande. Máximo 10MB.")
        await file.seek(0)
    
Related skills
Installs
10
First Seen
Mar 2, 2026