Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

108
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda