1. Accodate stringhe di caratteri
Utilizzate nel vostro sito diverse variabili che il visitatore ha compilato da solo nell'inserimento dei dati nei form come (nickname, email, indirizzo, ...). Voi avete solo pochi mezzi di verifica su questi dati (oltre ad utilizzare sistematicamente delle espressioni regolari per impedire alcuni valori (ad esempio controllare che il campo e-mail contenga obbligatoriamente una @), anche se non sempre è fattibile).
Il visitatore può disabilitare la visualizzazione di questi valori inserendo degli scripts (questo metodo viene chiamato cross-site scripting). Le prime versioni (RC1 e RC2) di ASP-Nuke avevano avuto questo problema. Bisogna quindi utilizzare il Server.HTMLEncode su tutti i valori che non sono controllabili (ad esempio la visualizzazione dei campi del database).
Attenzione, un errore può avvenire se tentate di fare un Server.HTMLEncode di una stringa nulla; a questo punto dovrete fare un Server.HTMLEncode(miaStringaValida & ") per raggirare l'ostacolo.
Il concatenamento HTML di stringhe permette di trasformare i caratteri utilizzati in HTML come >, < o anche le " nel loro codice speciale (per esempio < per ottenere <), così eviterete che il navigatore l'interpreti come un tag HTML.
Ecco 3 esempi facili:
<ul><li>Visualizzazione di una email che l'utente ha compilato con uno script alert causerà la visualizzazione di una finestra di dialogo ogni qualvolta questa email sarà richiamata (è un esempio "bonario" sull'utilizzo di Java_Script).
<li>Visualizzazione di questa stessa email in un campo di testo, ma con un ">prima di script... I 2 caratteri "> saranno interpretati come la chiusura di un tag, e il testo successivo potrà essere visualizzato in tutte le sue parti.
<li>Allo stesso modo si può aggiungere un </textarea> per chiudere un campo TEXTAREA.</ul>
Quindi vi consiglio di pensare a tutto, codice, visualizzazione di valori nelle pagine o nei forms ! Inoltre non dimenticate che Server.HTMLEncode è una funzione propria dell'ASP.