【问题标题】:ProcessBuilder engenders a critical Sonar vulnerabilityProcessBuilder 产生严重的声纳漏洞
【发布时间】:2018-11-28 21:04:36
【问题描述】:

我正在尝试使用 ProcessBuilder 在 Java 上执行 cmd 命令。这是我正在使用的代码:

        ProcessBuilder processBuilder = new ProcessBuilder("cmd", "/c", scriptPath, pathDirectory, fileName);
    Process process = processBuilder.start();

但是声纳分析产生了以下错误:

如何解决这个错误?

【问题讨论】:

标签: java sonarqube processbuilder


【解决方案1】:

我确认您应该相信RSPEC-2076 的描述,并且您应该清理可能被用户输入污染的变量。它可以是您的三个变量之一:scriptPath、pathDirectory、fileName。 SonarQube 的最新版本显示了哪些变量可以被用户污染并且必须进行清理。清理的一种方法是检查将要执行的命令是否在白名单中,如果检测到可疑的意外命令,则停止处理。

有关更多详细信息,另请参阅https://wiki.sei.cmu.edu/confluence/display/java/IDS07-J.+Sanitize+untrusted+data+passed+to+the+Runtime.exec%28%29+method

【讨论】:

    猜你喜欢
    • 2022-12-19
    • 2019-01-08
    • 2020-04-05
    • 1970-01-01
    • 2021-10-20
    • 2022-07-10
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多