그래서 ImageMagick
을 사용하는 도우미와 이미지에서 QR 데이터를 추출하는 명령 행에서 zbar
을 실행하는 도우미가 있습니다. 이미지 소스는 매개 변수 여야합니다.레일에서 명령 주입 제거
qr_code_data = %x(zbarimg -q #{src})
brakeman
은 분명히 여기 나에게 command injection
경고를 제공합니다. backticks
만 사용하면 동일한 경고가 표시되고 system
은 필요한 결과를 산출하지만 true
을 출력하고 출력하지 않습니다. QR 디코딩 래퍼/gem 또는 Open3을 사용하고 싶지 않습니다. 필자가 언급 한 두 가지 옵션을 사용하는 것을 제외하고 명령 주입을 피하기 위해 매개 변수로 이미지 소스를 살균 할 수 있어야합니까?
ImageMagick은 일반적으로 STDIN을 입력으로 사용하도록 지원합니다. 'zbarimg -q png : -'을 시도하십시오. 'png'를 실제 이미지 형식으로 바꾸십시오. 그런 다음'system' 대신 [IO.popen] (http://ruby-doc.org/core-2.3.1/IO.html#method-c-popen)을 사용하십시오. 100 % 확신 할 수는 없으며 적합한 테스트 시스템을 준비 할 필요가 없습니다. 행운을 빕니다. – Eric