0
Postgresデータベースの配列フィールドに対してwhereクエリを実行する際に問題が発生しています。
私のレールアプリでは、People
というテーブルがあります。この中の1列はpets
と呼ばれます。この列には配列の値が含まれています:Rails:ストアドアレイに対する安全なクエリ
たとえば、ペットの犬を持つすべての人を返すクエリを実行したいと思います。
ソリューションアイブは、これまでのところ、そのような
checkedPet
が可変であり、「犬」や他の動物かもしれない
People.where("\"pets\" @> '{\"" + checkedPet + "\"}'")
ように見えるを使用して。
これは動作しますが、私はSQLインジェクションの問題に対して脆弱だと感じていますか?
これはケースですか?もしそうなら、より良い、より安全な解決策は何ですか?
!ありがとうございます!!! 小さな変化が1つありますが、後は必要ですか? ものに変更し、それを People.where(「=任意の( 『ペット』)?」、checkedPet)のように、私は正しいと おかげで再び –
@BenEastonマークします:私はと思っていませんでし – potashin
)ええ、それはタイプミスだが2番目の方法はSQLインジェクションの問題を防ぐでしょうか? –