ImageMagick
を使用するヘルパーがあり、コマンドラインにzbar
を適用してイメージからQRデータを抽出します。画像ソースはパラメトリックでなければなりません。レールでコマンド注入を削除する
qr_code_data = %x(zbarimg -q #{src})
brakeman
は明らかに、ここで私にcommand injection
警告を与えます。 backticks
のみを使用すると、同じ警告が表示され、system
は必要な結果を生成しますが、出力ではなくtrue
を返します。 QRデコードラッパー/ gem、Open3を使用したくありません。私は、私が言及した2つのオプションを使用する以外は、コマンドインジェクションを避けるためのパラメータとして画像ソースをサニタイズできるかどうかを知る必要があります。
ImageMagickは一般的にSTDINを入力に使用することをサポートしています。 'zbarimg -q png:-'を試してみてください。 'png'を実際のイメージフォーマットに置き換えてください。次に、 'system'の代わりに[IO.popen](http://ruby-doc.org/core-2.3.1/IO.html#method-c-popen)を使います。私はこれが機能し、適切なテストシステムを準備していないことを100%確信しているわけではありません。がんばろう。 – Eric