1

わかりました、これは奇妙なことです。今日、私のRailsアプリにauthlogic-oidをインストールしました。すべてが完全に正常に機能しますが、1つの小さな迷惑があります。

これは私がしたことです:

私は最初に自分のグーグルopenidに登録します。成功したログイン、リダイレクト、および私の電子メールは、私の正しいopenidとともに私のデータベースに保存されます。すべてがうまくいったことを嬉しく思います!

これで、ログアウトすると、通常どおりRailsアプリがセッションを破棄し、ルートURLにリダイレクトして、再度ログインできるようになります。これで、ログインしようとしても、最後のログインIDが記憶されます。いつでも「別のユーザーとしてサインイン」できるので大きな問題ではありませんが、アプリからのログアウトだけでなく、Googleからのログアウトもできるのではないかと思います。

スタックオーバーフローのopenid認証システムでも同じことに気づきました。

なぜ私はこれについてそんなに気になっているのですか、あなたは尋ねるかもしれません。しかし、たまたまサイバーカフェにいるWebアプリのエンドユーザーが、自分のアプリから、したがって自分のGoogleアカウントからログアウトしたと思って、後で自分のGoogleアカウントが一部のユーザーにハッキングされたことに気付いたとしても悪い考えではありません。彼の前の人がグーグルからログアウトしていないことに気づいたばかりの価値のない敗者は..彼のパスワードを変更しました!!

私はパラノイアである必要がありますか?これは、openid仕様を実装する際の重大なセキュリティの失効ではありませんか?おそらく今日、誰かが私にこの問題の回避策を教えてくれ、質問は私のために解決されます。しかし、アプリにopenidを実装し、回避策を実装していない他の人はどうでしょうか?

4

2 に答える 2

3

これが非常に大きな問題である場合は、OpenIDを使用しないか、ログアウトが成功した後にDHTMLポップアップを表示して、セッションがOpenIDプロバイダーでまだ有効であることをユーザーに通知します。

GoogleのOpenIDに関しては、おそらく次のURLを介してユーザーをリダイレクトすることができます。

http://www.google.com/accounts/ClearSID?continue=http%3A%2F%2Fwww.google.com%2Faccounts%2FLogout%3Fcontinue%3Dhttp%3A%2F%2Fwww.google.com%2F

于 2010-04-18T15:46:20.917 に答える
2

Afaik、別のシステムでユーザーをアカウントからログアウトさせる方法はありません。あなたのアプリはそれ自身のビジネスに対してのみ責任があることになっています。ユーザーとして、openidを使用しているウェブサイトが私のグーグルアカウントから私をログアウトさせることができたら、私は非常に驚きます。

はい、ユーザーがあなたのサイトからログアウトしたためにグーグルからログアウトしたとユーザーが想定できるシナリオがありますが、それは彼ら自身のせいです(そしてそうあるべきです)。

于 2010-04-18T15:06:34.607 に答える