gpt4 book ai didi

ruby-on-rails-4 - Rails 4 - 在 SQL 查询中使用 LIKE 运算符防止 SQL 注入(inject)

转载 作者:行者123 更新时间:2023-12-04 21:57:12 28 4
gpt4 key购买 nike

我想对我的 Rails 4 应用程序使用以下查询,但我担心 SQL 注入(inject)攻击:

@persons = People.where("persons.name LIKE ?", "%#{params[:search]}%")

有人可以告诉我写上述语句的安全方法吗?我尝试了以下方法,但不确定它是否防 SQL 注入(inject):
search = "%" + params[:search] + "%"
@persons = People.where("persons.name LIKE ?", search)

谢谢!

最佳答案

正如紫舍所说,你的例子很好。

每当您对方法使用问号并将另一个参数作为搜索查询传递时,它都会清理您的查询字符串。

当您手动执行字符串连接来创建查询时,这是很危险的,例如:

Project.where("name = '#{params[:name]}'")

Click here for more information

关于ruby-on-rails-4 - Rails 4 - 在 SQL 查询中使用 LIKE 运算符防止 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25416667/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com