Не используйте child_process.exec()
.Умная созданная строка из пользовательского ввода запустит произвольный код из вашей программы, которого вы действительно хотите избежать.
Вместо этого используйте child_process.execFile()
следующим образом:
const getPageHtmlResponse = (fullUrl) => {//fullUrl is come from input form in web page
return new Promise((resolve, reject) => {
try {
const execFile = require('child_process').execFile
execFile("/path/to/curl", fullUrl, (err, stdout, stderr) => resolve(stdout))
} catch (error) {
resolve(false)
}
});
}
execFile
занимаетпредварительно проанализированный список команд и не запускает промежуточную оболочку, поэтому меньше риск запуска программы по ненадежному URL.
См. также
child_process.execFile