ESAPI para prevenção de XSS não está funcionando
Estou trabalhando na correção de problemas de script entre sites em nosso código, principalmente em JSPS.
Abaixo está o código original
//scriplet code
<% String userId = request.getParameter("sid");
...%>
e no mesmo Jsp eles têm
<input type = hidden name = "userID" value = "<%= userId %>" />
Fiz alterações para incluir esapi-2.1.0.jar na lib e ESAPI.properties, validation.properties no caminho de classe. Em seguida, fez as alterações abaixo no código do scriplet para corrigir o código acima
//scriplet code
<% String userId = ESAPI.encoder().encodeForHTML(request.getParameter("sid"));
...%>
Eu pensei que isso resolveria o problema, mas quando digitalizo meu código usando o Fortify, essas linhas são novamente destacadas como tendo um problema XSS. Por favor, ajudem se vocês têm alguma idéia de como isso deve ser tratado. Obrigado.
------- ATUALIZAÇÃO
Muito obrigado @avgvstvs. Isso é muito perspicaz. Siga orientações, Não tenho certeza se estou sentindo alguma coisa. Código -
String userSID=ESAPI.encoder().encodeForHTMLAttribute(request.getHeader("janus_sid")); session.setAttribute("username",userSID);<input type=hidden name="USERNAME" value="<%= userSID %>"
E para outra depuração varibale, abaixo está o uso
String debugFlag = ESAPI.encoder().encodeForJavaScript(request.getParameter("debug"));var debugFlag = "<%= debugFlag%>";if(debugFlag == "y"){
document.title= title + " (" + host + ")";
defaultAppTitle = title + " (" + host + ")";
}
A varredura mais recente do Fortify ainda as lista de vulnerabilidades :-(