archivos SVG y billones de risas atacan

9

Los archivos SVG son susceptibles de billones de risas . Nuestro sitio web permite a los usuarios cargar / enviar archivos de rebajas y ejecutamos el archivo .md a través de marked.js antes de representarlo. Ahora las imágenes en el markdown se renderizan como,

<img src="https://evilsite.com/badsvg.svg"/>

enlapáginaweb.Losnavegadoresevitaránqueseejecute<script>enbadsvg.svg.

Ahoraevilsite.compuedeservirabadsvg.svgquecontienemilesdemillonesderisasdecargaútil.Asíescomolomanejanlosdiferentesnavegadores,

Edge/IE:nosehavistoafectado,yaquetieneunlímiteenlaexpansióndelaentidad(puedeverloenlosregistrosdelaconsola)

Firefox:tambiénparecetenerunlímiteenlaexpansióndelaentidad

Chrome:sinlímites,intentaexpandirtodaslasentidadesy,finalmente,sequedasinmemoriaynohaymásopciónquecerrar/eliminarlapestaña

EsteerrorrelacionadoenChromeestabamarcadocomo"no se corrige" - enlace

Este es el DOS del lado del cliente y el sitio básicamente se vuelve inutilizable para cualquier usuario en Chrome. ¿Cómo sugieres que evitemos este tipo de ataque? No permitir que los usuarios hagan referencia a recursos de dominios externos parece una medida extrema.

    
pregunta Techtwaddle 11.06.2017 - 20:34
fuente

1 respuesta

1

Como solución alternativa, podría implementar algo como un proxy SVG en su servidor que rechaza los archivos SVG que activan la dosificación y vinculan todos los archivos SVG a través del proxy, por ejemplo. %código%. Pero, por supuesto, habría una desventaja en el rendimiento, incluso si eso pudiera limitarse haciendo la comprobación solo para los usuarios de Chrome.

Una forma no demasiado costosa de detectar un SVG incorrecto es intentar renderizar el SVG con un proceso que tiene un límite de memoria. Si la renderización falla, es un SVG erróneo. Puedes probar ImageMagick, que al menos a veces también rechaza los SVG malos por sí mismo.

    
respondido por el 40F4 11.07.2017 - 23:21
fuente

Lea otras preguntas en las etiquetas