NodeJS的子进程args数组清理参数吗?

时间:2015-08-05 13:21:51

标签: node.js security sanitization child-process

假设您正在构建一个基于未验证输入运行shell命令的应用程序。

将参数连接为字符串显然是一个巨大的安全风险,但与args选项的情况相同吗?

文档没有提及任何相关内容。我跑了一个快速测试:

var child = require("child_process");

child.spawn("touch", ["./filename", "&& touch ./hacked"]);

filename已创建,但hacked未创建。这是否意味着我可以插入args数组中的任何内容并假设它是安全的?

1 个答案:

答案 0 :(得分:3)

我认为你所看到的问题不在于它正在为你清理你的输入,我认为你不能在你的论点中使用空格。请参阅此answer

我在网上找不到任何迹象表明您的孩子产卵论据已被消毒。