Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

105
Views
Desinfecte el contenido de la imagen y elimine el Javascript incrustado

Para una API de carga de imágenes que estamos construyendo, ¿hay alguna guía sobre la verificación/desinfección de contenido malicioso?

He visto ejemplos en Internet donde podemos agregar JavaScript dentro de una imagen y subirlo a cualquier API de carga de archivos. Si tuviéramos que representar la imagen tal como está usando el elemento en otro lugar, el navegador ejecutará ese código JS incrustado.

Mientras buscaba consejos de mitigación, encontré este enlace en los documentos de OWASP. Su recomendación es reescribir las imágenes usando la biblioteca Apache Commons Imaging, pero no estoy seguro de si se mantiene activamente (última actualización en 2020)

¿Hay una mejor manera de detectar JS incrustado en imágenes (o) alguna forma segura de representar estas imágenes en el navegador para mitigar los ataques XSS almacenados?

Agradezco cualquier ayuda en esto.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Hay varias formas de mitigar xss en las cargas de archivos de imagen.

Sigue estos pasos,

  • No permita ningún otro tipo de archivo aparte de las imágenes. (Por ejemplo: solo acepte archivos con tipo de contenido: image/png , image/jpg , image/jpeg , image/gif )
  • Guarde siempre el archivo con una extensión adecuada, nunca permita que el usuario controle la extensión del nombre del archivo. (Puede guardar el archivo usando un nombre completamente aleatorio para mitigar esto, use GUID/UUID para generar un nombre aleatorio para la imagen)
  • Establezca el tipo de contenido de la respuesta HTTP en image/<type> . (Los navegadores no ejecutarán ningún javascript si el tipo de contenido es image/* )
  • Solo use la <img src="[path-to-img]"> para representar la imagen y no permita que el usuario controle ningún valor de HTML aquí.
  • Si permite que los usuarios carguen imágenes svg , entonces debe desinfectar el contenido del archivo porque los archivos SVG están creados con XML. Entonces, use algo como sanitize-svg para eliminar el contenido malicioso de los datos cargados.
  • Use CSP para evitar XSS (Opcional, mejor si puede implementar)

Si sigue los pasos anteriores, prácticamente no hay posibilidades de obtener XSS. (Actualmente - 2022-04-09)
Por lo tanto, si solo desea protegerse contra los ataques XSS, no es necesario desinfectar o detectar contenido malicioso de los datos cargados.

[ADVERTENCIA]: si procesa los datos cargados en el lado del servidor para cualquier otra cosa (cambiar el tamaño, recortar) , debe eliminar cualquier contenido malicioso antes de hacerlo.

Finalmente, asegúrese de revisar esta hoja de trucos de mitigación XSS de OWASP.

Espero que esto ayude.

about 4 years ago · Juan Pablo Isaza Report

0

El proceso de manejo de imágenes que encontró en los documentos de OWASP es generalmente un buen enfoque.

Si está realmente preocupado por algún contenido malicioso que:

  1. Maneje la reescritura de la imagen en un entorno desechable (VM o contenedor) donde no sea un problema si se ve comprometida.
  2. Mantenga/almacene el archivo cargado en 2-3 fragmentos en el host y solo ensámblelo en la máquina virtual.

Editar:

Además, puede usar la Política de seguridad de contenido para proteger, en el lado del cliente, a los usuarios contra ataques XSS.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!