无法阻止 SQL 注入 Rails 中的查询

Unable to prevent query from SQL Injection in Rails

我正在做一个 Rails 项目并使用 Brakeman 作为调试工具。我使用查询从 table 获取数据,但在 Brakeman 的测试中它指出查询中存在 Sql 注入可能性。

这是我的查询:

Applicant.all.where("profile_id=#{current_user.profile.id}").first

但我不知道这个查询有什么问题,如果它不安全,我该如何防止它被 SQL 注入?

根据rails指南的正确方法使用此

Applicant.where('profile_id = ?', current_user.profile.id).first 

OR

Applicant.where(profile_id: current_user.profile.id).first

 OR

Applicant.find_by_profile_id(current_user.profile.id)

 OR

Applicant.find_by(profile_id: current_user.profile.id)

我想你要找的是:

Applicant.find_by(profile_id: current_user.profile.id)

当您阅读这段代码时,您会更容易理解自己在做什么。