无法阻止 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)
当您阅读这段代码时,您会更容易理解自己在做什么。
我正在做一个 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)
当您阅读这段代码时,您会更容易理解自己在做什么。