我的user_ransaker.rb
文件中有以下代码:
ransacker :new_donors do
sql = %{(
users.id IN (
#{User.new_donor_sql}
)
)}
Arel.sql(sql)
end
型号user.rb
:
def self.new_donor_sql
part_1 = %{(
SELECT distinct(user_id)
FROM donations
}
part_1
end
对于上述声明,我收到以下 Brakeman 警告:
Confidence: High
Category: SQL Injection
Check: SQL
Message: Possible SQL injection
Code: Arel.sql("(\n users.id IN (\n #{User.new_donor_sql}\n)\n)")
File: app/models/concerns/user_ransackers.rb
这是一个有效的错误吗??
如果我使用 ActiveRecord 编写 SQL 语句,如果需要插入值,我可以使用占位符。我不确定如何解决此警告。如果这是一个有效的警告,我该如何补救?