所以我试图从我的shell
中运行node.js script
命令:
var child = exec('mysqldump -u "'+dbConfig.user+'" --password="' + dbConfig.password + '" --single-transaction ' + dbConfig.database + ' > ' + dumpFilePath)
现在这一切都很好,但是
password
可以包含特殊字符来中断命令。我一直在研究这个节点模块:https://www.npmjs.com/package/shell-escape
但是它的一个问题是不能解析
=
符号。这使得这个包对上面的声明毫无用处。所以我的问题是如何安全地逃离密码字段?
最佳答案
您可以使用单引号安全地转义密码:
var child = exec('mysqldump -u ' + dbConfig.user + ' --password=\'' + dbConfig.password + '\' --single-transaction ' + dbConfig.database + ' > ' + dumpFilePath)