Итак, у меня есть помощник, который использует ImageMagick
и метод внутри него, который принуждает zbar
в командной строке извлекать QR-данные из изображения. Источник изображения должен быть параметрическим.Удалить команду впрыска в рельсы
qr_code_data = %x(zbarimg -q #{src})
brakeman
дает мне command injection
предупреждение здесь, очевидно. Использование только backticks
дает такое же предупреждение, и в то время как system
будет выдавать требуемый результат, он возвращает true
, а не выход. Я не хочу использовать обертку/драгоценный камень QR-декодирования или Open3. Мне нужно знать, могу ли я дезинфицировать источник изображения в качестве параметра, чтобы избежать ввода команды, за исключением использования двух опций, о которых я упомянул.
ImageMagick обычно поддерживает использование STDIN для ввода. Попробуйте 'zbarimg -q png: -'. Замените «png» на ваш фактический формат изображения. Затем используйте [IO.popen] (http://ruby-doc.org/core-2.3.1/IO.html#method-c-popen) вместо 'system'. Я не уверен на 100%, что это сработает, и у вас нет подходящей тестовой системы. Удачи. – Eric