在我的java类中,我运行以下命令来建立与服务器的网络连接,如:
Process process = runtime.exec("net use \"\\\\External\path\download.zip\" password /user:username");
以上,用户可以接受密码和用户名。
因为,上述具有被攻击系统权限的进程可以使用命令分隔符(&,&&,;,||,()等)并在上述单个语句中执行多个命令。
我去了this,其主要任务是更改执行命令和白名单或黑名单用户输入的权限。
现在,我的问题是用户名和密码都可以包含任何章程组合,所以我不能黑名单(&,&&,;,||,()等)和runtime.exec运行系统模式,所以我无法找到解决方案。
我已经考虑过使用ProcessBuilder,但是在空格分段命令后,runtime.exec会调用相同的代码。所以,这没有任何帮助。
此外,我不想引入第三方库来解决这个问题,但如果这是唯一的解决方案,那么我必须接受它。
如果我可以删除runtime.exec的用法来建立网络连接,那就太棒了。