Gal*_*iss 73 ruby activerecord ruby-on-rails-4
我正在尝试编写LIKE查询.
我读到纯字符串quires不安全,但我找不到任何解释如何编写安全的LIKE Hash Query的文档.
可能吗?我应该手动防御SQL注入吗?
spi*_*ann 143
要确保您的查询字符串得到正确的清理,请使用数组或哈希查询语法来描述您的条件:
Foo.where("bar LIKE ?", "%#{query}%")
Run Code Online (Sandbox Code Playgroud)
要么:
Foo.where("bar LIKE :query", query: "%#{query}%")
Run Code Online (Sandbox Code Playgroud)
如果有可能的是,query
可能包括%
字符,那么你需要清理query
与sanitize_sql_like
第一:
Foo.where("bar LIKE ?", "%#{sanitize_sql_like(query)}%")
Foo.where("bar LIKE :query", query: "%#{sanitize_sql_like(query)}%")
Run Code Online (Sandbox Code Playgroud)
Ped*_*olo 31
使用Arel,您可以执行此安全且可移植的查询:
title = Model.arel_table[:title]
Model.where(title.matches("%#{query}%"))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
50455 次 |
最近记录: |