Я беру строку ввода от пользователя и использую ее в качестве параметров для фоновой программы командной строки.
Каков наилучший способ обеспечения того, чтобы этот ввод был "безопасным"? Ака, они не вставили "; cd /; rm -rf" или какое-то другое безобразие в поле?
Без всякой дезинфекции у меня есть ...
@query = params[:query]
@result = %x( mycommand #{@query} )
Мне нужно получить выходные данные команды, поэтому я не могу использовать систему («команда», «параметры»), поскольку она возвращает только true или false, но обеспечивает защиту.
Я знаю, что это опасно ... заранее спасибо.