2011-05-10 14 views
10

quiero hacer la siguiente forma seguraCalling comando shell de rubí con argumento adecuado escapar

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

¿Cuál es el adecuado camino para escapar de argumentos cuando se llama a un comando nativo?

(Ejemplo de entrada del mal: '; rm -Rf *; echo 'I won.)

+0

El foco es el * escape apropiado * no el * registro apropiado *. Eso es solo un ejemplo. – Notinlist

Respuesta

16

Si lo hace

system "echo", params[:message] 

A continuación, el segundo argumento, se enviará como un argumento, no se ejecutará.

+1

Excelente respuesta. Tengo que aceptarlo y publicar una nueva pregunta si quiero obtener una solución para mi problema original. – Notinlist

Cuestiones relacionadas