Вызов команды оболочки из ruby ​​с правильным экранированием аргумента - PullRequest
10 голосов
/ 10 мая 2011

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

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

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

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

1 Ответ

16 голосов
/ 10 мая 2011

Если вы выполните

system "echo", params[:message]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...