Cross-site scripting: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
riporto alla versione precedente di DrZimbu, qualche minchione aveva inserito cose a caso e nessuno di quegli adminoni e di quei patroller che fan sempre la voce grossa se ne è accorto.
Riga 7:
==Origine e trasformazione del concetto==
 
L'espressione "cross-sfgfgfdgitesite 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 ==
Riga 19:
Per verificare la vulnerabilità di un sito è sufficiente (ad esempio) provare ad inserire del codice [[JavaScript]] o [[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 />
 
<script type=<nowiki>''ciaoo''>alert ('xss')</script></nowiki>
 
<br />
<source lang="html4strict"><script type="text/javascript">alert('XSS')</script></source><br />
Tra le operazioni che è possibile indurre il browser ad eseguire vi sono l'invio del contenuto di [[cookie]] a terze parti e l'aggiunta di elementi (X)HTML alla pagina, operazione che può servire facilmente a sottrarre credenziali di autenticazione per mezzo di un modulo di inserimento contraffatto sovrapposto ad un modulo originariamente presente nella pagina web.
Line 29 ⟶ 25:
== Come difendersi ==
=== Escape degli input in PHP ===
Il metodo più sicuro per un programmatore PHP, è quello di usare una delle tre funzioni che permettono l'escape dei caratteri html inserite in una stringa. Dette funzioni sono: htmlspecialchars(), htmlentities(), strip_tags: tutte sicure, shiuhiiohiohiohoiisi differenziano soltanto per l'output:
<br/>