file SVG e miliardi di attacchi di risate

9

I file SVG sono suscettibili di attacco miliardi di risate . Il nostro sito Web consente agli utenti di caricare / inviare file di markdown ed eseguiamo il file .md attraverso marked.js prima di renderlo. Ora le immagini nel markdown vengono visualizzate come,

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

nellapaginaweb.Ibrowserimpedirannoqualsiasi<script>inbadsvg.svgdall'esecuzione.

Oraevilsite.compuòservirebadsvg.svgchecontienemiliardidipayloaddirisate.Questoèilmodoincuiidiversibrowserlogestiscono,

Edge/IE-Noninfluenzatoinquantohaunlimitediespansionedell'entità(puoivederlonellaconsoledeilogin)

Firefox-Sembraanchecheabbiaunlimiteall'espansionedelleentità

Chrome-Nessunlimite,tentadiespanderetutteleentitàeallafineesaurirelamemoriaenonc'èaltraopzionechechiudere/ucciderelascheda

QuestobugcorrelatosuChromeèstatocontrassegnatocome"non risolverlo" - link

Questo è DOS lato client e il sito diventa praticamente inutilizzabile per qualsiasi utente su Chrome. Come suggerisci di prevenire questo tipo di attacco? Non consentire agli utenti di fare riferimento a risorse provenienti da domini esterni sembra una misura estrema.

    
posta Techtwaddle 11.06.2017 - 20:34
fonte

1 risposta

1

Come soluzione alternativa potresti implementare qualcosa come un proxy SVG sul tuo server che rifiuta i file SVG che attivano il dos e collegano tutti i file SVG attraverso il proxy, ad es. %codice%. Ma ovviamente ci sarebbe uno svantaggio nelle prestazioni, anche se ciò potrebbe essere limitato eseguendo il controllo solo per gli utenti di Chrome.

Un modo non troppo costoso per rilevare un SVG non valido è provare a rendere SVG con un processo che ha un limite di memoria. Se il rendering fallisce è un SVG non valido. Potresti provare ImageMagick che almeno a volte rifiuta anche gli SVG non validi.

    
risposta data 11.07.2017 - 23:21
fonte

Leggi altre domande sui tag