Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除Java中的跨站点脚本_Java_Xss - Fatal编程技术网

删除Java中的跨站点脚本

删除Java中的跨站点脚本,java,xss,Java,Xss,我有一些老项目要维护。当使用某种工具扫描代码质量时,可以发现代码有很多跨站点脚本问题,我需要解决这些问题。下面给出了其中一个问题 public class Tester1 { public void doRecurrssion(JspWriter out, MyDTO dto){ out.print("<table"); out.print("<tr>"); out.print("<td width='30&g

我有一些老项目要维护。当使用某种工具扫描代码质量时,可以发现代码有很多跨站点脚本问题,我需要解决这些问题。下面给出了其中一个问题

 public class Tester1 {

    public void doRecurrssion(JspWriter out, MyDTO dto){

        out.print("<table");
        out.print("<tr>");
        out.print("<td width='30><font face='Arial, Helvetica'>"+dto.getFirstName()+"</font><td>\n");
        out.print("<td width='30><font face='Arial, Helvetica'>"+dto.getLastName()+"</font><td>\n");
        out.print("</tr>");
        out.print("</table>");
    }
}
公共类测试员1{
公共作废或保留(JspWriter out,MyDTO){
out.print(“+dto.getLastName()+”\n”);
输出。打印(“”);
输出。打印(“”);
}
}

我收到了上述代码中第3和第4条“out.print”语句的跨站点脚本问题。如何解决此问题?

我猜该工具正在抗议,因为您正在获取原始值(例如
getFirstName()
的返回值)并将其逐字包含在HTML页面中

如果您通过对值进行HTML编码(例如使用库)来保护自己免受XSS攻击,则警告很可能会消失:

out.print(“'
+Encode.forHtml(dto.getLastName())+“\n”);

下面的html代码将如何工作
@AbhishekNaswale:这里有一些JSP示例。
out.print("<td width='30><font face='Arial, Helvetica'>" 
    + Encode.forHtml(dto.getFirstName()) + "</font><td>\n");
out.print("<td width='30><font face='Arial, Helvetica'>" 
    + Encode.forHtml(dto.getLastName()) + "</font><td>\n");