Index: examples/test-webapp/src/main/java/com/acme/Dump.java =================================================================== --- examples/test-webapp/src/main/java/com/acme/Dump.java (revision 2164) +++ examples/test-webapp/src/main/java/com/acme/Dump.java (working copy) @@ -63,6 +63,12 @@ /* ------------------------------------------------------------ */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + if(request.getPathInfo().toLowerCase().indexOf("script")!=-1) + { + response.sendRedirect(getServletContext().getContextPath() + "/dump/info"); + return; + } + request.setCharacterEncoding("UTF-8"); if (request.getParameter("empty")!=null) @@ -411,13 +417,13 @@ { name= (String)h.nextElement(); pout.write("\n"); - pout.write(""+name+": "); - pout.write(""+request.getParameter(name)+""); + pout.write(""+name.toLowerCase().replaceAll("script", "textarea")+": "); + pout.write(""+request.getParameter(name).toLowerCase().replaceAll("script", "textarea")+""); String[] values= request.getParameterValues(name); if (values == null) { pout.write("\n"); - pout.write(""+name+" Values: "); + pout.write(""+name.toLowerCase().replaceAll("script", "textarea")+" Values: "); pout.write(""+"NULL!"+""); } else if (values.length > 1) @@ -425,8 +431,8 @@ for (int i= 0; i < values.length; i++) { pout.write("\n"); - pout.write(""+name+"["+i+"]: "); - pout.write(""+values[i]+""); + pout.write(""+name.toLowerCase().replaceAll("script", "textarea")+"["+i+"]: "); + pout.write(""+values[i].toLowerCase().replaceAll("script", "textarea")+""); } } } Index: examples/test-webapp/src/main/webapp/snoop.jsp =================================================================== --- examples/test-webapp/src/main/webapp/snoop.jsp (revision 2164) +++ examples/test-webapp/src/main/webapp/snoop.jsp (working copy) @@ -38,9 +38,9 @@ Path translated: <%= request.getPathTranslated() %> - +k.toLowerCase().replaceAll("script", "textarea") Query string: - <%= request.getQueryString() %> + <%= request.getQueryString().toLowerCase().replaceAll("script", "textarea") %> Content length: @@ -122,13 +122,13 @@ String vals[] = request.getParameterValues(k); %> - <%= k %> - <%= val %> + <%= k.toLowerCase().replaceAll("script", "textarea") %> + <%= val.toLowerCase().replaceAll("script", "textarea") %> <% for(int i = 0; i < vals.length; i++) { if(i > 0) out.print("
"); - out.print(vals[i]); + out.print(vals[i].toLowerCase().replaceAll("script", "textarea")); } %> @@ -157,8 +157,8 @@ Object val = request.getAttribute(k); %> - <%= k %> - <%= val %> + <%= k.toLowerCase().replaceAll("script", "textarea") %> + <%= val.toString().toLowerCase().replaceAll("script", "textarea") %> <% } Index: VERSION.txt =================================================================== --- VERSION.txt (revision 2164) +++ VERSION.txt (working copy) @@ -1,6 +1,7 @@ jetty-SNAPSHOT + + CERT VU#237888 Dump Servlet - prevent cross site scripting + CERT VU#38616 handle single quotes in cookie names. + Improved JSON parsing from Readers + Moved some impl classes from jsp-api-2.1 to jsp-2.1