Checkmarx扫描期间Java中class.forname的代码注入问题

Checkmarx扫描期间Java中class.forname的代码注入问题,java,code-injection,checkmarx,Java,Code Injection,Checkmarx,如何解决Java中class.forname的代码注入问题。在checkmarx扫描期间,我面临着这个代码注入问题,下面是示例代码片段 StringBufferXML=新的StringBuffer xml.append(“”); xml.append(“”); 试一试{ 字符串strpath=request.getParameter(“myclass”); If(strpath!=null){ append(“+strpath+”); Class cls=Class.forName(strpa

如何解决Java中class.forname的代码注入问题。在checkmarx扫描期间,我面临着这个代码注入问题,下面是示例代码片段


StringBufferXML=新的StringBuffer
xml.append(“”);
xml.append(“”);
试一试{
字符串strpath=request.getParameter(“myclass”);
If(strpath!=null){
append(“+strpath+”);
Class cls=Class.forName(strpath);
strpath=getLocation(cls);
append(“+strpath+”);
}
}
捕获(异常错误){
strpath=err.getMessage();
}

对于Checkmarx,您可以直接为字符串“strpath”指定一个参数,而无需对其进行圣徒化。在使用字符串“strpath”之前,您需要验证它,并且Checkmarx不会在您的问题中看到任何代码注入

更新
getLocation
实现。getLocation实现。string getLocation(类cls){String name=cls.getName().replace('.','/')URL loc=cls.getResource(“/”+name+”.class”);File f=new File(loc.getFile());if(f.getPath().start以(“File:){String s=f.getPath();in}尝试{f=f.getCanonicalFile();}捕获(IOExecption ioe){ioe.printtrace();}@Priyo,而不是在注释中发布代码(不编译缺少的返回语句),编辑question@Priyo您想做什么,为什么要使用
Class.forName()
?请将您的问题包括从checkmarx获得的完整问题。另外,不要手动编写XML代码,请使用库。您可能会犯太多错误。谢谢。我尝试过验证,但没有解决此问题。出现相同错误。请提出建议