2012-06-27 57 views
1

使用爲Rails的omniauth插件找到一個用戶,我得到一個SQL注入警告,當我在下面的代碼行運行司閘員:SQL注入預防與Omniauth

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

的SQL注入警告:

可能的SQL注入鄰近線15:User.where(request.env [ 「omniauth.auth」]切片(:提供商:UID)) /app/controllers/authentications_controller.rb

如何避免這行代碼易受攻擊?

回答

3

你可以嘗試這樣的事情

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

你不介意我問什麼是切片的SQLI風險?檢索uid或其他東西很容易嗎? – dtc