XSS in CSS personalizzato, fornito dall'utente

1

Gli utenti della nostra app Web vorrebbero utilizzare CSS personalizzati per personalizzare parti dell'interfaccia utente. Mi è venuta in mente una sorta di lista nera per le "parolacce" dei CSS e sono curioso di sapere se sia sufficiente o se devo migliorarlo. In sostanza, se il CSS contiene alcuni di questi ...

    "expression",
    "@import",
    "@charset",
    "javascript",
    "url(",
    "behavior",
    "data:",
    "http:",
    "https:",
    "//",
    "vbscript",
    "moz-binding",
    "\"           //just one backslash (this one is escaped)

... l'app la rifiuta e chiede all'utente di non usare nessuno di questi. Voglio anche impedire loro di inserire oggetti remoti e cose tramite URI di dati.

Sarebbe sufficiente? È un buon approccio o dovrei prendere in considerazione altre opzioni?

    
posta Ondrej Vrabel 23.11.2018 - 18:25
fonte

1 risposta

2

Questo approccio non sembra ideale poiché è comune trovare bypass quando si tratta di blacklist.

Ci sono alcune grandi risorse là fuori come " Attacchi senza script - Ruba la torta senza toccare il davanzale " e il video recente di LiveOverflow " The Curse of Cross- Origin Stylesheets "se sei interessato a saperne di più sugli attacchi senza script che fanno affidamento sui CSS. Questi link potrebbero darti un'idea migliore di quali potrebbero essere i problemi a seguito del CSS fornito dall'utente.

    
risposta data 26.11.2018 - 19:33
fonte

Leggi altre domande sui tag