Quali schemi URL sono pericolosi (XSS sfruttabili)?

0

So che un approccio blacklist al filtro URL non è il più sicuro, ma diciamo che oltre a questo filtro stiamo anche riscrivendo tutti i link non fidati per passare attraverso una pagina di reindirizzamento che avvisa l'utente dei rischi, e che stiamo implementando attentamente la lista nera per evitare XSS Filter Evasion .

Quali schemi di URL dovremmo inserire nella lista nera? I due ovvi sono javascript: e data: , quali altri mi mancano?

    
posta Changaco 15.01.2017 - 11:08
fonte

1 risposta

2

Una lista nera di schemi URI non è affidabile.

Non esiste un elenco comune di schemi URI errati perché non è possibile costruirne uno completo. Ci sono molti schemi non standard per diversi browser e altri potrebbero essere aggiunti in futuro. (Un esempio di un pericoloso schema non standard sarebbe livescript: per le vecchie versioni di Netscape.)

Questo è un altro buon punto:

I do not allow bitcoin: on my servers, nor anything except for http, https, or ftp.

The reason is because I have no way of knowing what third party applications might have vulnerabilities (including social engineering) that could be exploited by a specially crafted URI string being fed to them.

(Origine)

Allo stesso modo, non esiste una lista nera di pericolosi tag HTML perché - anche se standardizzati - i browser continuano a seguire le proprie strade con i tag personalizzati. Costruire un elenco completo sarebbe senza speranza.

Un altro problema è che potresti incontrare problemi con schemi nidificati. Che dire di view-source:data:... , rss:jar:... , ecc.?

Quindi è più sicuro concordare una lista bianca di schemi accettabili e aggiungerne altri a richiesta. Ad esempio, questo è l'impostazione predefinita su Wordpress:

$protocols (array) (optional) An array of acceptable protocols. Defaults to 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp' if not set.

(Origine)

    
risposta data 15.01.2017 - 21:53
fonte

Leggi altre domande sui tag