🟣
Secure Software Development
  • Inicio
  • General
    • Seguridad por oscuridad
    • Subresource Integrity (SRI)
  • Recomendaciones
    • Codificación de salida
    • CORS (Cross-Origin Resource Sharing)
    • JSON Web Token (JWT)
    • Lectura de archivos
    • Manejo de errores
    • SQL injection (SQLi)
    • Subida de archivos (file upload)
    • Validación de datos de entrada
Con tecnología de GitBook
En esta página
  • Recomendaciones
  • Referencias

¿Te fue útil?

  1. Recomendaciones

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):

AnteriorSQL injection (SQLi)SiguienteValidación de datos de entrada

Última actualización hace 2 años

¿Te fue útil?

OWASP
Unexpected file types
Malicious files
OWASP Cheat Sheet Series
PortSwigger