0

私のWebアプリケーションには、「管理者」という役割があります。この役割を持つユーザーは、登録ユーザーに関する情報を変更できる必要があります。

電子メールやユーザー名などのユーザーの詳細をテーブルに表示して変更できるようにすることを考えていますが、ユーザーが物理的にオフィスに来て管理者に行き、尋ねた場合はどうすればよいかわかりません。パスワード変更のために(はい、彼らはそれを行うことができます)。管理者は、行の上のリセットボタンを押して、ユーザーが帰宅したら電子メールを確認して回復を続行するようにユーザーに指示する必要がありますか?(たとえば、リンクをリセットする)または、管理者はユーザーのパスワードをリセットして、その瞬間に新しいパスワードをユーザーに与える必要がありますか?私がそうするように頼まれたので、2番目のアプローチが好ましいです...

元のパスワードはハッシュ化されて不明であるため、管理者が元のパスワードを表示できないようにする必要があることを私は知っています。

これについてどう思いますか?この機能をどのように実装しますか?ご協力いただきありがとうございます。

4

1 に答える 1

0

この質問に対する完璧な答えはありません。ワークフローの問題は、常にアプリケーションの特定のユースケースに依存し、アプリケーションが組み込まれているコンテキストに依存します。

そうは言っても、あなたは正しいことの1つです。それは恐ろしいことです。つまり、管理者や他のユーザーに他の誰かのクリアテキストパスワードを表示させるという恐ろしいセキュリティ違反を意味します。だから、それは間違いなくテーブルから外れています。

あなたの場合、管理者に誰かのパスワードを変更する権利を与えることが道のりのようです。見た目が気になる方はご遠慮ください。Google Appsを使用すると、ドメイン管理者はそのドメインのメールアカウントのパスワードを変更できます。

最後に、私は小さな追加の安全対策を提案します。管理者が別のユーザーのパスワードを変更する場合は、古い暗号化されたパスワードを列に保存し、削除しないでください。管理者が新しいパスワードを設定したら、「パスワードは管理者によって変更されました。これを要求しなかった場合は、ここをクリックしてください」というメールをユーザーに送信します。メール内のリンクをクリックすると、新しいパスワードを古いパスワードで上書きするだけです。

そうすれば、管理者がユーザーの要求なしにパスワードを変更している場合、ユーザーに頼ることができ、ログは、管理者がユーザーによってパスワードのリセットを取り消された回数を通知します。

于 2012-11-20T21:44:26.297 に答える