我正在使用org.apache.commons.csv.CSVPrinter
在我的代码中打印一些字符串值。csvprinter.print(mystring)
Veracode在静态扫描期间在该行中检测到 CWE 1236 缺陷。
根据我对这个问题的理解,我已经尝试过StringUtils.stripStart(mystring, "=+-@\\r\\t")
,然后在 `csvprinter.print 语句中使用了更新的 mystring 值。但是 veracode 仍然在同一行显示相同的问题。
另外,我得到了一个解决方案,比如在以特殊字符(=、+、@、-、制表符、回车符等)开头的值之前添加单引号(')字符,这样这些公式元素就不会被执行我们尝试通过电子表格打开/查看这些内容。</p>
</p>
所以,我已经尝试使用下面的代码,仍然 veracode 静态重新扫描报告在与之前相同的位置标记相同的问题。
</p>
Pattern p = Pattern.compile("^([+\r\t-@=])");
Matcher m = p.matcher(mystring);
printer.print((m.find()) ? "\'" + mystring + "\'" : mystring);
此外,我已经为那些公式元素尝试了普通的 if-else 块,也尝试了StringUtils.escapeCsv(mystring)
,仍然没有运气。
我只想从 veracode 的角度清除这个缺陷,而不妨碍现有的功能。如果有人对此有一些 JAVA 代码,那将对我有所帮助。
有人可以建议我对此提出一些解决方案。是否有任何用于 JAVA 的 veracode 清理功能列表来解决此缺陷?