Cross-site scripting: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Annullata la modifica 111528247 di Randawoods (discussione): that's spam Etichetta: Annulla |
Recupero di 2 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0 |
||
Riga 46:
Mentre il codice JavaScript processa anche gli input dell'utente e li visualizza nella pagina web, la nuova sottoclasse di attacchi XSS di tipo reflected ha iniziato ad apparire ed è stata chiamata [[Document Object Model|DOM]]-based cross-site scripting. Negli attacchi XSS DOM-based, i dati malevoli non sono toccati dal server web, piuttosto, sono riflessi dal codice JavaScript interamente sul lato client.<ref>{{Cita web|url=https://www.owasp.org/index.php/DOM_Based_XSS|titolo=DOM Based XSS - OWASP|sito=www.owasp.org|accesso=21 maggio 2016}}</ref>
Un esempio di vulnerabilità XSS DOM-based è un bug trovato nel 2011 in una serie di plugin [[JQuery]]<ref>{{Cita web|url=https://bugs.jquery.com/ticket/9521|titolo=#9521 (XSS with $(___location.hash) and $(#<tag>) is needed?) – jQuery - Bug Tracker|sito=bugs.jquery.com|accesso=21 maggio 2016}}</ref>. Le strategie di prevenzione per gli attacchi XSS DOM-based includono misure molto simili alle strategie tradizionali di prevenzione XSS, ma implementate in codice [[JavaScript]] e incluse nelle pagine<ref>{{Cita web|url=https://www.owasp.org/index.php/DOM_based_XSS_Prevention_Cheat_Sheet|titolo=DOM based XSS Prevention Cheat Sheet - OWASP|sito=www.owasp.org|accesso=21 maggio 2016|urlarchivio=https://web.archive.org/web/20170128103628/https://www.owasp.org/index.php/DOM_based_XSS_Prevention_Cheat_Sheet|dataarchivio=28 gennaio 2017|urlmorto=sì}}</ref>. Alcuni framework JavaScript hanno creato contromisure contro questi e altri tipi di attacchi — ad esempio [[AngularJS|Angular.js]]<ref>{{Cita web|url=https://docs.angularjs.org/api/ng.$sce|titolo=AngularJS|sito=docs.angularjs.org|accesso=21 maggio 2016}}</ref>.
== Un esempio di attacco ==
Riga 87:
== Come difendersi ==
=== Encoding dell'output contestuale/escaping delle stringhe di input ===
Questa misura dovrebbe essere usata come meccanismo primario di difesa per fermare gli attacchi XSS. Ci sono diversi schemi di escaping che possono essere usati, tra cui HTML entity encoding, JavaScript escaping, CSS escaping, e URL encoding<ref>{{Cita web|url=https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet|titolo=XSS (Cross Site Scripting) Prevention Cheat Sheet|autore=Williams, Jeff|editore=OWASP|data=19 gennaio 2009|accesso=|urlarchivio=https://web.archive.org/web/20170318125710/https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet|dataarchivio=18 marzo 2017|urlmorto=sì}}</ref>. Molte applicazioni web che non accettano rich data possono usare l'escaping per eliminare la maggior parte dei rischi derivati da attacchi XSS in modo abbastanza semplice.
=== Convalidare in modo sicuro l'input non attendibile ===
|