我正在使用Node编写CLI,并到达了获取用户输入并将其附加到字符串作为child_process.exec
函数命令的部分。
const CURL_CHILD = exec('npm view --json ' + process.argv[2] + ...
我正在尝试弄清楚在将它传递给exec函数之前,我需要对process.argv[2]
进行哪些操作。 我已经浏览了一段时间,没有找到任何针对这个特定案例的问题或答案。
对于此特定用例,最好的方法是什么我们需要实际做什么?
更新 我仍然在浏览并尝试学习回答自己的问题,并发现这个链接建议我使用js-string-escape(一个node软件包)。 我非常想使用本地/原生方法来解决这个问题。 Node是否有相关工具?
更新2
我最终偶然发现了“命令注入”关键词,并找到了一大堆文章建议使用child_process.execFile
或child_process.spawn
。 我仍然很好奇是否有本地方法对输入进行清理,同时仍然保护由child_process.exec
创建的整个Shell进程。 我希望有人能回答这个问题。