1

使用 Rails 的omniauth 插件查找用户时,当我在以下代码行上运行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(:provider, :uid)) /app/controllers/authentications_controller.rb

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

4

1 回答 1

3

你可以试试这样的

User.find_by_provider_and_uid(omniauth[:provider], omniauth[:uid])
于 2012-06-28T01:27:01.547 回答