我正在尝试修复一些旧代码在Fortify扫描中弹出的各种问题,大部分是在运行FindBugs工具时弹出的问题。
不幸的是,我遇到了“信任边界违规”问题。
旧代码:
Product p = new Product();
p.setProductName(request.getParameter("productName"));
好的,我知道没有验证参数的值。这是我尝试做的事情:
Product p = new Product();
if (FormUtils.prevalidateString(request.getParameter("productName"))) {
String productName = request.getParameter("productName");
p.setProductName(FormUtils.parseString(productName));
}
这是静态prevalidate和parseString方法的代码:
public static boolean prevalidateString(String inStr) {
// check input against BASIC_STRING Guava CharMatcher
return BASIC_STRING.matchesAllOf(inStr);
}
public static String parseString(String paramStr) {
String s = null;
if (paramStr != null && ! "".equals(paramStr)) {
s = paramStr;
}
return s;
}
这没有解决问题。 (注意:我也尝试使用正常的正则表达式和没有运气的String.matches()进行预验证。)
有人可以告诉我为什么上面的代码不能解决问题吗?