消除外部流程的输入

时间:2011-02-11 01:59:01

标签: java process input external sanitize

我有一个Java程序,它使用使用commons exec执行的hg客户端与Mercurial存储库进行交互。由于我不得不偶尔将用户输入传递给hg(例如代理设置,源URL等),可以使用哪些库来清理输入?我现在正在剥离任何东西,包括第一个';'但是我不确定有人可以运行任意命令的其他方法。

1 个答案:

答案 0 :(得分:0)

通过黑名单(这就是你正在做的事情)你是不安全的。相反,你必须将允许的字符(字母,数字,空格,点,......)列入白名单。抵制黑名单的诱惑,它永远不会奏效。 (例如,你是否在代码中存活空间?它是否能够存活?0个字符?)