Usare l'ASP classico, è questo il modo giusto per proteggersi da XSS?
var1=untrusteduserinput
Mostra un testo nel corpo
<%=server.htmlencode(var1)%>
Mostra un collegamento nel corpo
<a href="http://www.example.com/page.asp?var1=<%=server.urlencode(var1)%>"><%=server.htmlencode(var1)%></a>
Mostrare un'immagine
<img src="http://www.example.com/images/<%=server.urlencode(var1)%>"alt="<%=server.htmlencode(var1)%>">
Mostra un iframe
<iframe src="http://www.example.com/page.asp?var1=<%=server.urlencode(var1)%>"></iframe>
Neimetatag
<metaname="description" content="<%=server.htmlencode(var1)%>">
Nei moduli
<input type="text" name="var1" value="<%=server.htmlencode(var1)%>">
EDIT: In e-mail
<a href="mailto:<%=server.urlencode(var1)%>">Email</a>
EDIT 2:
Perché http://
diventa %3A%2F%2F
quando si utilizza urlencode su un collegamento come questo? Quindi il link non funziona.
<a href=”<%=server.urlencode(var1)%>”><%=server.htmlencode(var1)%></a>
MODIFICA 3:
Grazie mille per le tue risposte! Tuttavia, non sono sicuro di aver capito bene. XSS è pericoloso in uscita, su cosa viene stampato sul sito Web in modo che altri possano vederlo, giusto? Quindi ho pensato che fosse il fatto che il link apparisse come un link cliccabile che lo rendesse più pericoloso? Che qualcuno inserisca codice dannoso che viene eseguito quando qualcuno fa clic sul link? E per questo motivo ho dovuto usare urlencode invece di htmlencode.
Se ho un link che qualcun altro ha inserito in un modulo, come può essere sicuro solo con HTMLencode? Non so se si tratta di un collegamento all'interno del mio sito Web o di un sito Web esterno. In teoria, può apparire esattamente come il link nel mio primo esempio in cui ho usato urlencode di una variabile che era solo una parte del collegamento.
ho letto in questo forum collegare di qualcuno che ha problema simile e da quel post ho pensato che è molto pericoloso e quasi impossibile proteggere agains XSS la visualizzazione di un URL esterno?
Ho anche trascorso ore googling per un regexp ASP classico che è in grado di verificare che si tratta di un link esterno senza contenuto pericoloso, ma non riusciva a trovare nulla.