任何人都可以在以下getCourses方法中建议对courseType变量所需的正确的清理/验证过程。我正在使用该变量写入日志文件。
我已经尝试过HtmlUtils.HtmlEscape(),但是没有得到预期的结果。
谢谢!
@RequestMapping(value = "/retriveCourses", method = RequestMethod.GET) @ResponseBody public List<Course> getCourses(@RequestParam(value = "courseType", required = false) String courseType) { }
在这种情况下,Checkmarx工具似乎是正确的。
“日志伪造”漏洞意味着攻击者可以设计对安全敏感的操作的日志,并放置错误的审核跟踪,从而可能牵扯到无辜的用户或隐藏事件。
使用时htmlEscape会转义一些特殊字符:
htmlEscape
&lt;
<
&gt;
>
&amp;
&
&quot;
"
它不会转义或删除为了保持日志完整性而必须避免的换行符/ EOL /制表符。
避免日志伪造的最佳实践建议是:
cleanInput = input.replace('\t', '-').replace('\n', '-').replace('\r', '-');
希望可以解决您的问题。