簡體   English   中英

Rails:針對存儲數組的安全查詢

[英]Rails: safe query against stored array

我在對Postgres數據庫中的數組字段執行where查詢時遇到問題。
在我的rails應用程序中,我有一個名為People的表。 其中的一列稱為pets 現在,此列包含數組值,即:

["dog", "cat", "fish"]

我想執行一個查詢,例如返回所有擁有寵物狗的人。

到目前為止,我一直使用的解決方案

People.where("\"pets\" @> '{\"" + checkedPet + "\"}'")

其中checkedPet是變量,可以是“狗”或任何其他動物。

這可行,但我感覺很容易受到SQL注入問題的影響?
是這樣嗎 如果是這樣,那么有什么更好,更安全的方法來避免這種情況?

根據ActiveRecord和PostgreSQL指南,您可以執行以下操作:

People.where('? = any("pets")', checkedPet)

要么

People.where('"pets" @> ?', "{#{checkedPet}}")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM