0

明らかに、リンクをメールで提供することはできません

example.net/changepassword.aspx?email=bob@example.com

だから私は必要です

example.com/changepassword.aspx?email=fregrtgethytrhergerg

これどうやってするの?暗号化キーが必要だと思いますか? 追加のデータベース テーブルを作成せずに、これらすべてを行うことはできますか? 私はセキュリティについて何も知りません。

私が見つけた最も近い説明は、ASP.NET でパスワードをハッシュおよびソルトする方法に関する記事です。

4

2 に答える 2

3

ここでは、ユーザーにメールを送信する「失われたパスワードの回復ページ」を作成したいとします。これは本当ですか?

新しいテーブルを作成したくないのですが、既存のテーブルに新しい列 (または 2 つ) を作成してもよろしいですか?

その場合は、既存のテーブルに "guid" 列と別の列 "guidExpirationDate" を追加できます。

ユーザーが新しいパスワードを要求したら、テーブル (コード: ) に Guid を作成し、たとえば でGuid.NewGuid()有効期限を設定します。DateTime.Now.AddMinutes(30)

リンクでは、電子メール アドレスの代わりに Guid を指定します。ページが読み込まれたら、セキュリティ上の理由から、Guid の有効期限が切れていないことを確認してください。

ここでは暗号化は必要ありません。

于 2012-10-05T14:47:19.633 に答える
1

不穏な値を含む列(VerificationCode)をテーブルに追加できます(GUIDを使用できます)。

ユーザーが変更されたパスワードを要求したら、データベースでVerificationCodeを生成および更新し、URLで同じものを使用します。

example.com/changepassword.aspx?verificationCode=yourUniqueKey
于 2012-10-05T14:54:12.270 に答える