Manejo de archivos y subidas
Dejar que los usuarios suban archivos es un campo minado silencioso, y el primer borrador de la IA casi nunca cierra los huecos:
- Valida el tipo y el tamaño. Sin límites, alguien sube un archivo de 10 GB o un ejecutable. Comprueba el contenido real, no solo la extensión del nombre de archivo, que cualquiera puede renombrar.
- Nunca confíes en el nombre del archivo. Un nombre como
../../etc/passwdpuede hacer que un manejador ingenuo escriba fuera de la carpeta prevista (esto se llama traversal de rutas). Genera tú mismo nombres seguros en lugar de usar el que te proporcionan. - No sirvas las subidas desde el mismo origen que tu app, y no dejes que los archivos subidos se ejecuten como código. Un archivo suministrado por un usuario que cae en una carpeta que tu servidor va a ejecutar es un camino directo a la toma de control total.
No tienes que construir todo esto tú mismo — un servicio de almacenamiento se encarga de la mayor parte —, pero tienes que pedirlo, porque la IA no lo va a ofrecer por voluntad propia. "Añade una función de subida" te consigue el camino feliz. "Añade una función de subida que valide el tipo y el tamaño del archivo, rechace cualquier cosa que no sea una imagen, y almacene los archivos con nombres generados" te consigue algo más cercano a seguro.