gpt4 book ai didi

sql - 可能的sql注入(inject)

转载 作者:数据小太阳 更新时间:2023-10-29 08:08:13 24 4
gpt4 key购买 nike

我正在使用 squeel gem在我的项目中,我有这样的代码:

def self.search(query)
return self.scoped if query.blank?

self.joins(:supplier).where{lower(supplier.supplier_name).like_any(["%#{query}%"])}
end

我的问题是这段代码容易受到 SQL 注入(inject)攻击吗?我该如何解决?我尝试执行 sanitize(query) 但它只是添加了额外的引号集并且没有正确生成 SQL 语句

最佳答案

更新:

Squeel 会自动转义字符串,因此您的查询没问题,不会让您遭受注入(inject)。参见 question about sql injection - Squeel - Github

旧(不正确)答案:这是事件记录版本

如果我错了,请有人纠正我,但由于您将 #{query} 作为 STRING 而不是参数传递,那么您就在为注入(inject)敞开心扉。参见 the docs for passing in arguments

使用参数将转义'query' STRING

您使用参数的查询:

self.joins(:supplier).where{lower(supplier.supplier_name).like_any(["%"+?+"%"], query)}

关于sql - 可能的sql注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29701722/

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