Une application web existante est en cours d'exécution sur Tomcat 4.1. Il y a un XSS problème avec une page, mais je ne peux pas modifier le code source. J'ai décidé d'écrire un filtre de servlet pour assainir le paramètre avant qu'il est perçu par la page.
Je voudrais écrire une classe de Filtre comme ceci:
import java.io.*;
import javax.servlet.*;
public final class XssFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
String badValue = request.getParameter("dangerousParamName");
String goodValue = sanitize(badValue);
request.setParameter("dangerousParamName", goodValue);
chain.doFilter(request, response);
}
public void destroy() {
}
public void init(FilterConfig filterConfig) {
}
}
Mais ServletRequest.setParameter
n'existe pas.
Comment puis-je changer la valeur du paramètre de la requête avant de transmettre la demande de la chaîne?