Ciao sto facendo delle prove contro il XSS per alcuni siti.
In pratica invio degli script in qualche modo alle pagine...
Comunque dopo essere riuscito a evitare script del tipo
<script>alert(document.cookie)</script> o eventuali reindirizzamenti
ho questo problema.
Premetto: non conosco molto javascript...
In pratica durante il load di una pagina asp scateno una funzione in javascript (non scritta da me.)
Il problema è questa funzione si richiama un parametro tramite una request.form("mioparametro").
Stavo testando proprio il XSS su questo parametro...
In pratica se sostituisco a "mioparametro" una stringa del tipo <script>alert()</script> la funzione si impalla e in testa alla pagina web appare l'ultima parte della funzione che avevo scritto come se il browser la interpretasse come testo semplice html
Vi posto la mia funzione
function seleziona(){
if ("<%=mioindirizzo%>" == "dove.asp" || "<%=mioindirizzo%>" == "doverisultato.asp" ){
var prov = "<%=request.form("mioparametro") %>";
for (var i=0; i < document.province.provincia.options.length; i++){
if (document.province.provincia.options(i).value == prov){
document.province.provincia.options(i).selected = true;
}
}
}
}
In pratica vorrei poter creare una funzione o qualcosa che utilizzi i classici metodi di escaping. Io ho questa funzione
public static String forScriptTagsOnly(String aText){
String result = null;
Matcher matcher = SCRIPT.matcher(aText);
result = matcher.replaceAll("<SCRIPT>");
matcher = SCRIPT_END.matcher(result);
result = matcher.replaceAll("</SCRIPT>");
return result;
}
ma non saprei come tradurla e utilizzarla in javascript in questo mio caso.
Grazie a chi mi volesse dare una mano...
Davemustaine

Rispondi quotando