【发布时间】:2018-09-05 19:58:15
【问题描述】:
我正在使用 node 编写 CLI,我已经到达了接受用户输入并将其附加到作为 child_process.exec 函数命令的字符串的部分。
const CURL_CHILD = exec('npm view --json ' + process.argv[2] + ...
在将 process.argv[2] 传递给 exec 函数之前,我试图弄清楚我需要对它做什么。我已经浏览了一段时间,但没有找到任何针对此特定案例的问题或答案。
针对此特定用例清理此用户输入的最佳方法是什么?这里实际需要什么?
更新 我仍在四处寻找并尝试学习和回答我自己的问题,并找到了this link,这表明我使用js-string-escape(一个节点包)。我真的很想使用原生/香草的东西来做到这一点。 node 有这方面的工具吗?
更新 2
我终于偶然发现了“命令注入”这个流行词,并找到了大量推荐使用child_process.execFile 或child_process.spawn 的文章。我仍然很好奇是否有一种本地方式来清理输入,同时仍然保护child_process.exec 创建的完整 shell 进程。我留下这个开放,希望有人可以回答它。
【问题讨论】:
标签: node.js input exec child-process sanitize