1

asp.net メンバーシップのハッシュ アルゴリズムは sha-1 であると聞きましたが、ほとんどの記事でそれがもはや安全ではないことを見てきました。また、ほとんどのプロの開発者が asp.net メンバーシップを使用しているか、または使用しているかを知りたいです。システム/プロジェクトのログイン、認証、承認に関して、独自のソリューション/実装を考え出します。

asp.net メンバーシップは、Web アプリケーションのログイン、認証、承認のための安全で堅牢なソリューションを本当に提供しますか? :)

私が尋ねている理由は、開発者が実際にプロジェクトでそれを使用しているかどうかを知りたいからです.

閣下/奥様、あなたの答えは大変役に立ちます。

4

3 に答える 3

3

default hash algorithm.NET 4.0 で SHA256 に変更されました。したがって、.NET 4.0 を使用している場合はかなり安全です。

web.config でハッシュ アルゴリズムを指定することもできます。

<system.web>
    <machineKey validation="SHA256" />
    <membership defaultProvider="myMembership" hashAlgorithmType="SHA256">
    ...
</system.web>

実際、これは .NET 4.0 での重大な変更です。したがって、既存のアプリケーションが .NET 3.5 にあり、.NET 4.0 にアップグレードした場合、アルゴリズムの種類を SHA1 に戻さない限り、SHA1 でハッシュされたパスワードは .NET 4.0 で使用されなくなる可能性があります。

于 2013-01-26T17:40:00.550 に答える
3

適度な数のユーザーで内部アプリケーションを作成している場合は、通常、asp.net memberhsip に依存しています。おなじみの、私はそれをすばやく起動して実行する方法を知っています。他の開発者もそれをかなりよく知っているので、説明する必要はありません。また、組織がユーザー アカウントを管理できるようにすることも、通常は望ましいことです。

一方、公開サイトを作成していて、コントリビューションを行う前にユーザーを認証する必要がある場合 (例: スタック オーバーフロー)、ユーザーがドメインで新しいアカウントを作成する必要がないように、OpenIdの実装を検討することをお勧めします。代わりに Google/Facebook/Twitter を使用できます。始めるためのライブラリがあります。

于 2013-01-26T17:49:23.377 に答える
2

あまり。ASP.NETメンバーシッププロバイダーは設計上の失敗です。

  1. 独自のドメインモデルエンティティを使用する代わりに、事前定義されたドメインモデルエンティティを使用する必要があります。
  2. 簡単に互換性がない(会社ごとに異なるプロバイダーまたは異なる形式の認証を使用する)
  3. 事前定義されたMembershipProvider抽象化は、失敗したクラス設計です(out param?-はい、テストしてください)

独自のプロバイダーを実装してください。パスワードには、ハッシュアルゴリズム(sha1、sha512 ...)を選択します。

実装が終了したら、FormsAuthenticationクラスを使用してプロバイダーと統合します。

于 2013-01-26T17:54:58.380 に答える