1

Railsのomniauthプラグインを使用してユーザーを見つけると、次のコード行でブレーキマンを実行すると、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 に答える