gpt4 book ai didi

java - Checkmarx Java 修复日志伪造 - 清理用户输入

转载 作者:行者123 更新时间:2023-12-03 20:28:39 25 4
gpt4 key购买 nike

任何人都可以建议以下 getCourses 方法中 courseType 变量所需的正确清理/验证过程。我正在使用该变量写入日志文件。

我试过 HtmlUtils.HtmlEscape() 但没有得到预期的结果。

谢谢!

@RequestMapping(value = "/retriveCourses", method = RequestMethod.GET)
@ResponseBody
public List<Course> getCourses(@RequestParam(value = "courseType", required = false) String courseType) {

}

最佳答案

在这种情况下,Checkmarx 工具似乎是正确的。

“日志伪造”漏洞意味着攻击者可以设计安全敏感操作的日志并设置虚假审计跟踪,从而可能牵连无辜用户或隐藏事件。

使用时 htmlEscape将转义一些特殊字符:

  • &amplt;代表<标志。
  • &ampgt;代表>标志。
  • &ampamp;代表&标志。
  • &ampquot;代表"标记。

  • 它不会转义或删除为了保持日志完整性而必须避免的换行符/EOL/制表符。

    避免日志伪造的最佳实践建议是:
  • 确保替换所有相关的危险字符。例子:
    cleanInput = input.replace('\t', '-').replace('\n', '-').replace('\r', '-');
  • 验证所有输入,无论来源如何。验证应基于白名单。只接受符合指定结构的数据,而不是拒绝不良模式。检查:数据类型、大小、范围、格式、预期值。

  • 希望这能解决您的问题。

    关于java - Checkmarx Java 修复日志伪造 - 清理用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55364577/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com