Вызов команды оболочки из ruby ​​с соответствующим аргументом escaping

Я хочу сделать следующее безопасно

system "echo '#{params[:message]}' > /dev/log"

Что такое правильный способ экранирования аргументов при вызове собственной команды?

(Пример ввода зла: '; rm -Rf *; echo 'I won.)

Ответ 1

Если вы делаете

system "echo", params[:message]

Затем второй аргумент будет отправлен как аргумент, он не будет выполнен.