2017-12-12 4 views
-2

Ich habe ein altes Projekt zu pflegen. Wenn mit einem Tool nach Codequalität gescannt wird, wird beobachtet, dass Code viele Cross Site Scripting-Probleme aufweist, die ich lösen muss. Eines der Probleme ist unten angegeben.Entfernen von Cross Site Scripting in Java

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>"); 
    } 
} 

Ich erhalte Cross-Site-Scripting-Problem für die 3. & 4. "out.print" Anweisung in obigen Code. Wie man es löst?

Antwort

0

Meine Vermutung ist, dass das Tool protestiert, weil Sie einen Rohwert (z. B. den Rückgabewert getFirstName()) nehmen und es wörtlich in die HTML-Seite einfügen.

Wahrscheinlich die Warnung weg gehen, wenn Sie sich gegen XSS von HTML schützen die Werte kodiert, zum Beispiel durch die OWASP Java Encoder Bibliothek:

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"); 
+1

Vielen Dank! Ihre Lösung hat perfekt funktioniert. – AbhiN

+0

Wie funktioniert es für unter HTML-Code '<% = myForm.getName()%>' – AbhiN

+0

@AbhishekNaswale: Es gibt einige JSP Beispiele [in der Dokumentation] (https://www.owasp.org/index. php/OWASP_Java_Encoder_Project # tab = Use_the_Java_Encoder_Project). – Henrik

Verwandte Themen