使用正确的参数转义从ruby调用shell命令

Not*_*ist 10 ruby shell escaping

我想安全地做以下事情

system "echo '#{params[:message]}' > /dev/log"
Run Code Online (Sandbox Code Playgroud)

调用本机命令时转义参数的正确方法是什么?

(实施例恶输入:'; rm -Rf *; echo 'I won.)

Rob*_*rco 16

如果你这样做

system "echo", params[:message]
Run Code Online (Sandbox Code Playgroud)

然后第二个参数将作为参数发送,它不会被执行.