0

私の目標は、stackoverflow が使用するようなシステムでの安全なログインです。私は初心者ですが、ご覧のとおり、セキュリティに関するスタックオーバーフローの記事を一日中調べてきました。この調査の結果、私は攻撃計画を立てました。特に、このページはウェブサイトの認証に OpenID を使用するのに非常に役立ちました。次のシステムが安全なシステムであるかどうか、そうでない場合はどのようにシステムを改善すればよいか教えてください。

  1. OpenID を使用してユーザーを検証します。

  2. ユーザーが OpenID によって検証されたら、OpenID からユーザーの電子メール アドレスを取得します。

  3. メールアドレスをハッシュ化し、セッション変数に保存します。

  4. ハッシュされた電子メール アドレスをデータベース内のハッシュされた電子メール アドレスのリストと比較する

  5. ハッシュ化された電子メール アドレスに基づいて、そのユーザーに適したコンテンツを返します。

特に、ProviderOpenID の代わりに電子メール アドレスを使用することに神経質になっています。

私が持っていると仮定してください(他のスタックオーバーフローページでこれらの質問への回答を見つけたので):

  1. 使用後に適切に破棄されたセッション。

  2. アクセスできない場所にセッション データを保存するようにサーバーをセットアップします。

  3. データベースを安全な方法でセットアップします。

  4. SSL を使用して、トラフィックが傍受されないようにしています。

前もって感謝します。

4

1 に答える 1

1

一般に、OpenID をサポートする、使用している言語の認証アーキテクチャを使用する方が適切です。安全性が向上するだけでなく、より簡単になるだけでなく、記述するコードが少なくなり、そのコードを保守したりテストしたりする必要がなくなります。PHP、python、c#/asp.net、rails 用のものがあります。多くのフレームワークもサポートされています。

まず、提供された ID を使用してみませんか?

あなたには2つの問題があると思います:

  1. openID プロバイダーが、プロバイダーのものとは異なるドメインの電子メール アドレスを返す可能性があります。

    たとえば、gmail は正しく認証できますが、電子メール アドレスが billg@microsoft.com であると指定できます。そうすれば、そうではないという事実にもかかわらず、私がビル・ゲイツであるという私のアイデンティティを読むでしょう。もちろん、これを防ぐ方法はありますが、標準システムにはおそらくセーフガードが含まれており、そうでない場合でも、それらを修正するのは他の誰かの責任であり、他の人がそれらの問題を検討することになります.

  2. ウィキペディアの記事を正しく読んでいる場合、openID ID は必ずしも電子メール アドレスであるとは限りません

    これはセキュリティ上の問題ではありませんが、予期された動作が損なわれます。

于 2012-05-18T19:25:42.020 に答える