Cross-site scripting: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
AttoBot (discussione | contributi)
m WPCleaner v1.37 - Disambigua corretti 2 collegamenti - GET, POST / Fixed using Wikipedia:Check Wikipedia (Interlink scritto come un link esterno - Errori comuni)
Riga 1:
Il '''Cross-site scripting''' ('''XSS''') è una [[vulnerabilità]] che affligge [[Web dinamico|siti web dinamici]] che impiegano un insufficiente controllo dell'input nei [[form]]. Un XSS permette ad un [[Cracker (informatica)|Cracker]] di inserire o eseguire codice lato client al fine di attuare un insieme variegato di attacchi quali ad esempio: raccolta, manipolazione e reindirizzamento di informazioni riservate, visualizzazione e modifica di dati presenti sui server, alterazione del comportamento dinamico delle pagine web ecc... Nell'accezione odierna, la tecnica ricomprende l'utilizzo di qualsiasi linguaggio di scripting lato client tra i quali JavaScript, VBScript, Flash, HTML.
{{S|sicurezza informatica|Internet}}
 
Il '''Cross-site scripting''' ('''XSS''') è una [[vulnerabilità]] che affligge [[Web dinamico|siti web dinamici]] che impiegano un insufficiente controllo dell'input nei [[form]]. Un XSS permette ad un [[Cracker (informatica)|Cracker]] di inserire o eseguire codice lato client al fine di attuare un insieme variegato di attacchi quali ad esempio: raccolta, manipolazione e reindirizzamento di informazioni riservate, visualizzazione e modifica di dati presenti sui server, alterazione del comportamento dinamico delle pagine web ecc... Nell'accezione odierna, la tecnica ricomprende l'utilizzo di qualsiasi linguaggio di scripting lato client tra i quali JavaScript, VBScript, Flash, HTML.
 
Secondo un rapporto di [[Symantec]] nel [[2007]] l'80% di tutte le violazioni è dovuto ad attacchi '''XSS'''<ref>{{en}} [http://eval.symantec.com/mktginfo/enterprise/white_papers/b-whitepaper_exec_summary_internet_security_threat_report_xiii_04-2008.en-us.pdf Symantec Internet Security Threat Report: Trends for July-December 2007]</ref>.
Line 7 ⟶ 5:
==Origine e trasformazione del concetto==
 
L'espressione "cross-site scripting" originariamente si riferiva unicamente ad attacchi basati sull'utilizzo di frammenti di codice [[JavaScript]] inseriti all'interno di chiamate a pagine web dinamiche poste su un web-server (tecnica facente parte dei metodi di [[code injection]]) in modo che il server remoto eseguisse operazioni diverse da quelle previste originariamente dall'applicativo web. Tale definizione, gradualmente, si è estesa comprendendo anche altre modalità di "iniezione di codice" basate non solo su [[JavaScript]] ma anche su [[ActiveX]], [[VBScript]], [[Adobe Flash|Flash]], o anche puro [[HTML]]. Ciò ha generato una certa confusione nella terminologia riferita alla [[sicurezza informatica]]: il termine, infatti, ricomprende oggi tutto un insieme di tecniche di attacco e non esclusivamente quella basata su manipolazione di codice JavaScript.<ref name=Grossman>{{Cita web|autore=Grossman, Jeremiah|titolo= The origins of Cross-Site Scripting (XSS)|url= http://jeremiahgrossman.blogspot.com/2006/07/origins-of-cross-site-scripting-xss.html |data=30 luglio 2006|accesso=15 settembre 2008}}</ref><ref name=Wikipedia>{{Cita web|autore=Wikipedia|titolo=Cross-site scripting |url=http://en.wikipedia.org/wiki/Cross-site_scripting}}</ref>
 
== Tipologie ==
Esistono due tipi di vulnerabilità XSS:
* '''stored''', quando il codice di scripting viene inserito in maniera permanente sul server (es. quando viene sfruttata in un forum);
* '''reflected''', quando il payload viene iniettato tramite richieste GET o POST del protocollo [[Hyper TextHypertext Transfer Protocol|HTTP]] effettuate dallo stesso client che subisce l'attacco (es. si induce l'utente ad aprire un URL forgiato appositamente, contenente codice scripting che verrà iniettato nella pagina ed eseguito client side.).
 
== Un esempio di attacco ==
Questa vulnerabilità è dovuta a errori dei programmatori, che molto spesso trascurano completamente la validazione delle informazioni passate in input con le richieste [[Hyper TextHypertext Transfer Protocol|HTTP]], sia [[GET]] che [[POST]] (ad esempio, l'input di una stringa in un form di ricerca).
 
Per verificare la vulnerabilità di un sito è sufficiente (ad esempio) provare ad inserire del codice [[JavaScript]] o [[Structured Query Language|SQL]] nel suo campo di ricerca allo scopo di produrre effetti sulla pagina risultante, causando l'esecuzione del codice inserito.
 
Il seguente è un semplice frammento di codice JavaScript adatto al test:<br />