我正在尝试从 Node.js 脚本运行 shell 命令:
var child = exec('mysqldump -u "'+dbConfig.user+'" --password="' + dbConfig.password + '" --single-transaction ' + dbConfig.database + ' > ' + dumpFilePath)
现在一切都很好,但是
password
可能包含会破坏命令的特殊字符。
我一直在研究这个 Node 模块:https://www.npmjs.com/package/shell-escape
但是它的问题之一是它无法解析
=
符号,这使得该包对上述语句毫无用处。
所以我的问题是如何安全地逃脱密码字段?
您可以使用单引号安全地转义密码:
var child = exec('mysqldump -u ' + dbConfig.user + ' --password=\'' + dbConfig.password + '\' --single-transaction ' + dbConfig.database + ' > ' + dumpFilePath)