私は 'omniauth-openid' gemを使ってOpenIDログインを実装しています。私のOmniAuthコールバックメソッドでは、私はこのような何か(それが重要な詳細を簡略化しますが伝えるだ)を実行します。omniauth-openid gemを使ってOpenIDログインを安全にする方法は?
def google
oauth = request.env['omniauth.auth']
if @user = User.find_by_email(oauth.info.email)
sign_in(@user) and redirect_to '/dashboard'
end
end
これが効果的にGitHubの上OmniAuthのドキュメントは、あなたがする示したものと同じです。私はそれが非常に安全ではないと感じています。攻撃者は、コールバックURLのinfo.emailパラメータを手動で変更するだけで、他のユーザーと同様にログインすることができます。
これはOmniAuthの基本的な欠陥ですか?または、OmniAuthコールバックメソッドに渡されたパラメータがOpenIDプロバイダによって真に送信され、悪意のある人によって変更されていないことを確認する方法がいくつかありますか?
私は事実は分かりませんが、OmniAuthは非常に多くのことをバックグラウンドで行っています。私は、OpenIDプロトコルが安全かどうかについて、あなたは疑問に思っています。 – Andrew