之前我曾问过类似的问题,但我真的很想确保这是真的,因为这是一个安全问题。根据这个问题和给出的答案......
https://stackoverflow.com/a/15168405/4045156
...如果您使用execFile并允许未经过清理用户输入的内容插入到args中,那么它是安全的。真的吗?在我的应用程序中,用户无法修改可执行文件的名称,只能修改args数组中的一个args(他们需要提供他们键入的完全自定义文本;我无法将其作为列表提供选项)。
请注意,我特意使用execFile。我不知道运行服务器的特定操作系统是否重要(Windows vs Linux)。
示例:
var exec = require('child_process').execFile;
var execParams = ['--param-name', userSuppliedString]
exec('path-to-exe', execParams, {timeout: 120000}, function (err, data) {
});
这样安全吗?谢谢你的帮助。