Seguir el archivo hasta su uso final
La carga es una etapa de un recorrido. Después puede haber procesamiento, almacenamiento, generación de vistas y descarga. Cada etapa recibe datos y toma decisiones sobre dónde escribir, qué ejecutar y quién puede acceder.
Empezá por identificar el propósito de la función. Un avatar, un documento contractual y un archivo de intercambio necesitan reglas distintas. La lista de formatos permitidos y los límites deben responder a ese propósito.
Definir los controles de entrada
El nombre, la extensión y el tipo informado por el cliente son datos que requieren validación. El sistema debe aplicar una política de formatos compatible con la función y con los procesadores que utiliza. Una única comprobación no describe toda la seguridad del recorrido.
Fijá límites de tamaño y de trabajo. Un archivo pequeño puede generar más contenido al descomprimirse o exigir procesamiento costoso. También hay que decidir qué ocurre si la operación falla y cómo se evita dejar archivos temporales disponibles.
Separar almacenamiento y presentación
El nombre proporcionado por el usuario no debería decidir una ruta arbitraria del servidor. Definí identificadores y ubicaciones gestionadas por la aplicación, permisos del proceso y condiciones de publicación.
Una vista previa puede utilizar un componente distinto de la descarga. Identificá cómo se presenta el contenido y qué encabezados o controles corresponden. El análisis o transformación del archivo no reemplaza la autorización de quien lo consulta.
Conservar la pertenencia
En un sistema multiempresa, el archivo y sus versiones necesitan una relación con la organización. La consulta del registro y la descarga del contenido deben mantener la misma política de acceso.
Ejemplo ficticio: un documento de B no debe quedar disponible a un operador de A mediante una URL alternativa de descarga. Una prueba útil comprueba el acceso denegado y el permitido con archivos sintéticos.
Lista para preparar una revisión
- Formatos necesarios y formatos excluidos.
- Límites de tamaño, procesamiento y almacenamiento.
- Componentes que transforman o leen el contenido.
- Ubicación final y permisos de los archivos.
- Identidades autorizadas para crear, leer, reemplazar y borrar.
- Manejo de errores y limpieza de temporales.
- Rutas de vista previa, descarga y exportación.
- Datos sintéticos para probar los recorridos.
Documentá también servicios externos que procesen archivos. Su inclusión necesita un alcance y autorizaciones propios.
Referencias y siguiente paso
La guía File Upload de OWASP desarrolla controles sobre archivos. La guía de autorización complementa la revisión de permisos. Para examinar implementación y recorridos, consultá AppSec y revisión de código.
Otras lecturas.
- Autorización en aplicaciones multiempresa
- Preparar una integración para una revisión de seguridad
- Revisión de dependencias: de la alerta al contexto