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

Última actualización

¿Te fue útil?