SQL 注入预防与全身份验证



使用 Rails 的全身份验证插件查找用户,当我在以下代码行上运行 brakeman 时,我会收到 SQL 注入警告:

omniauth = request.env["omniauth.auth"]
user = User.where(omniauth.slice(:provider, :uid)).first

SQL 注入警告为:

在第 15 行附近可能的 SQL 注入:User.where(request.env["omniauth.auth"].slice(:p rovider, :uid)) /app/controllers/authentications_controller.rb

如何避免这行代码易受攻击?

你可以试试这样的东西

User.find_by_provider_and_uid(omniauth[:provider], omniauth[:uid])

最新更新