2017-10-12 86 views
0

,所以我想從我的node.js script運行shell命令:逃生殼牌串的Node.js

var child = exec('mysqldump -u "'+dbConfig.user+'" --password="' + dbConfig.password + '" --single-transaction ' + dbConfig.database + ' > ' + dumpFilePath) 

現在,這是一個好細,不過password可以包含將打破命令的特殊字符。

我一直在尋找這個節點模塊:https://www.npmjs.com/package/shell-escape

但是它的問題之一是,它不能解析=跡象。這使得該包對上述語句無用。

所以我的問題是我怎樣才能安全地逃脫密碼字段?

回答

1

你可以用單引號安全逃離密碼:

var child = exec('mysqldump -u ' + dbConfig.user + ' --password=\'' + dbConfig.password + '\' --single-transaction ' + dbConfig.database + ' > ' + dumpFilePath) 
+0

將這個考慮特殊字符,如{/#$£ECT –

+0

是的,它會([強引用(HTTP://維基.bash-hackers.org /語法/報價?做=顯示#strong_quoting))。 – TGrif