Olá comunidade,
Eu tenho uma aplicação que está sofrendo com ataques do tipo XSS. O campo que eles utilizam para tal ataque e um campo textarea com um editor rico.
Como eu posso resolver este problema visto que eu não posso eliminar todos os tipos de tags enviadas, porque se não o editor rico iria perder suas funcionalidades?
Obrigado Pela Ajuda.
Bernardo,
O ideal é você “escapar” todas as saídas desse campo, isto é, onde você printa no html o valor que foi digitado neste campo faça algo como:
<%=org.apache.commons.lang.StringEscapeUtils.escapeHtml(valorDoSeuCampo)%>
A classe StringEscapeUtils faz este trabalho de “escapar”:
http://commons.apache.org/lang/api-release/org/apache/commons/lang/StringEscapeUtils.html#escapeHtml(java.lang.String)
Abraços
Hmmm…
Mas não tem como eu tratar a entrada de dados no banco?
Bernardo,
A minha primeira sugestão não foi boa, porque só agora entendi que você deixa o usuário preencher um campo com HTML.
Outra sugestão é permitir apenas algumas tags, no caso utilizar uma expressão regular para verificar se o usuário preencheu somente com as tags aceitas (é mais fácil fazer uma white list do que uma black list).
Abraços
Fiz um filtro usando expressão regular como você falou e funcionou perfeitamenta.
Obrigado.
