假设您正在构建一个基于未验证输入运行shell命令的应用程序。
将参数连接为字符串显然是一个巨大的安全风险,但与args
选项的情况相同吗?
文档没有提及任何相关内容。我跑了一个快速测试:
var child = require("child_process");
child.spawn("touch", ["./filename", "&& touch ./hacked"]);
filename
已创建,但hacked
未创建。这是否意味着我可以插入args
数组中的任何内容并假设它是安全的?
答案 0 :(得分:3)
我认为你所看到的问题不在于它正在为你清理你的输入,我认为你不能在你的论点中使用空格。请参阅此answer。
我在网上找不到任何迹象表明您的孩子产卵论据已被消毒。