Subida de archivos (file upload)
Recomendaciones
Incorporar validaciones de nombre, extensión, tipo (
Content-Type
), contenido (MIME-Type), tamaño y análisis/escaneo (sandbox) para el proceso de carga de archivos en la aplicación.Establezca un lÃmite de longitud para el nombre de archivo. Restrinja los caracteres permitidos.
Asegúrese que el nombre del archivo no contenga caracteres especiales y subcadenas que puedan interpretarse como un directorio o una secuencia transversal (
../
).Compruebe el nombre del archivo con una lista negra de extensiones prohibidas.
Verifique la extensión del archivo con una lista blanca de extensiones permitidas. Solo admita extensiones seguras y necesarias para la funcionalidad del comercio/negocio.
Valide el tipo y contenido del archivo, no confÃe en el encabezado de tipo de contenido (
Content-Type
), ya que puede ser falsificado.Establezca un lÃmite de tamaño de archivo para evitar ataques de denegación de servicio en el espacio de almacenamiento u otras funciones de la aplicación.
No revele el directorio o ubicación de cargas y no proporcione acceso directo al archivo cargado. Siempre oculte el directorio de carga de los usuarios finales y solo permita descargar los archivos a través de una página de descarga.
Aleatorizar los nombres de los archivos cargados y almacene sus nombres originales "sanitizados". Cambiar el nombre del archivo agrega otra capa de complejidad para que los atacantes logren acceder directamente a un archivo y evita que el archivo cargado sobrescriba un archivo existente.
La carga de archivos solo debe ser accesible para usuarios autenticados y autorizados.
Almacene los archivos en un host diferente, lo que permite una segregación completa de funciones entre la aplicación que atiende al usuario y el host que maneja las cargas de archivos y su almacenamiento.
El directorio o lugar de almacenamiento de los archivos no debe tener ningún permiso de "ejecución".
Analice y escanee (sandbox) los archivos en busca de malware o cadenas maliciosas.
Utilice un Web Application Firewall (WAF) como una capa secundaria de protección.
Referencias
OWASP Web Security Testing Guide (WSTG):
Última actualización
¿Te fue útil?