Prevenzione da script cross-site in scenari diversi?

0

Non sono riuscito a convalidare caratteri dannosi come ". < > ecc. perché questi caratteri sono richiesti nella mia applicazione. Inoltre, non potrei codificare i caratteri perché l'utente dovrebbe inserire tag HTML nella mia applicazione, nel caso in cui codifichiamo caratteri, i tag html non sono visualizzati sul browser.

Quindi ho creato un filtro che ha bloccato e solo tag. C'è qualche altro approccio o altri caratteri o stringhe che ho bisogno di bloccare ??

    
posta Ayush3g 13.02.2014 - 19:25
fonte

2 risposte

1

Sembra che l'approccio che stai adottando per evitare la creazione di cross-site scripting sia nero, elencando tag specifici.

Questo approccio è molto difficile da mantenere e non sarebbe consigliato poiché ci sono sempre nuovi tag e parametri che potrebbero consentire lo sviluppo di script Cross-Site, quindi richiede una manutenzione costante. Un buon esempio della varietà di vettori che possono essere utilizzati per XSS è qui .

Se hai bisogno che i tuoi utenti siano in grado di utilizzare i contenuti multimediali del sito (magari per la formattazione del testo), allora forse un'altra opzione potrebbe essere quella di consultare linguaggi come markdown che potrebbe consentire agli utenti di inserire testo più ricco, senza i pericoli del puro HTML.

    
risposta data 13.02.2014 - 19:34
fonte
0

Invece di bloccare, puoi consentire l'inserimento di qualsiasi tag, ma puoi evitare l'esecuzione dello script quando produci un Politica di sicurezza dei contenuti .

Questo viene eseguito dall'output di un'intestazione HTTP su tutte le pagine del tuo sito (o per lo meno tutte le pagine di contenuti dell'utente).

per es.

Content-Security-Policy: default-src 'self'

consentirà l'accesso solo ai file di script sul tuo dominio. Se l'utente ha incluso uno qualsiasi dei propri codici in <script> tag, attributi ( onclick="doEvil();" ) o codice di riferimento su altri domini ( <script src="http://www.example.com/evil.js"></script>)nonverrebberoeseguiti.Sestaipercorrendoquestarotta,dovrestilimitaredefault-src(cheinfluenzeràtuttodallerichiesteXHR,fontidifont,sorgentidiimmagini,ecc.)Aself(cioèlastessaorigine)ocomeminimodovrestilimitarescript-srcestyle-srccheimpedisconoscriptesternieinlineecodicecss.

L'unicolatonegativodiquestoapproccioècheibrowsermenorecentipotrebberononsupportareCSP.Potrestiessereingradodirilevarequestoequindimostrareunaversioneditestoinchiarodelcontenutoaquestiutenti.Adesempio,eliminatuttiitagequindiCodificaHTMLsull'output(perevitarecheeventualitagpossanoessersiintrodottidinascosto).Ibrowserdisupportosono elencati qui .

    
risposta data 14.02.2014 - 11:58
fonte

Leggi altre domande sui tag