Make sure "command" is properly sanitized before use in this OS command.传递给OS命令的值应该被清理

本文没有解决方案,仅供参考,及疑似解决方案。

代码静态扫描时提示critical级别的bug,如标题

看不懂是什么意思,不知道应该怎么解决,胡乱用process.destroy()也仍然提示bug

public void runWithNoMsgWaitFor(String command, String globalId) throws IOException, InterruptedException {
        Process process = Runtime.getRuntime().exec(command);
        redirectInputStream(process.getErrorStream(), errorGlobalId(globalId));
        redirectInputStream(process.getInputStream(), successGlobalId(globalId));
        process.waitFor();
    }

  

Values passed to OS commands should be sanitized
漏洞 严重
传递给OS命令的值应该被清理

然后各种百度都找不到相应的解决方案,百度也没找到篇有用的文章。最后FQ找到两篇有些用处的文章

https://lpsc.in2p3.fr/ami/sonar/coding_rules?open=squid%3AS2076&tags=owasp-a1%2Cowasp-a2%2Cowasp-a3%2Cowasp-a4%2Cowasp-a5%2Cowasp-a6%2Cowasp-a7%2Cowasp-a8%2Cowasp-a9%2Cowasp-a10

 

 

 

 

sonarsource的官网中对类似问题的解答

 https://rules.sonarsource.com/java/RSPEC-2076?search=Values%20passed%20to%20OS%20commands%20should%20be%20sanitized

 

 

 

 

所以个人认为是要求对这个传入的command进行判断,防止命令注入攻击。不知道理解的对不对。有谁知道解决方案不妨回一下

 

posted on 2021-03-02 20:59  墨椟  阅读(235)  评论(1)    收藏  举报