我正在构建动态 SQL 语句并执行 using ActiveRecord::Base.connection.select_values
,因为查询有点复杂(将 3 到 4 个表与几个 group by 并从多个表中选择列),我需要更快的响应。我们正在使用Brakeman安全扫描器来识别任何 SQL 注入,大多数这些动态查询都被标记为易受 SQL 注入攻击。
我尝试使用一些 Rails 内部方法手动清理用于单引号的动态 SQL 语句中的参数,例如:为了转义(单引号)字符串我尝试了sanitize_sql_for_conditions
其他类似的方法但是 Brakeman 仍然将它们识别为易受 SQL 注入攻击或者单独转义单引号不能解决 SQL 注入问题?
在构建动态 SQL 时是否有更好的方法来处理 SQL 注入?
我正在使用 Rails 2.3 红宝石 1.8.7