2016-05-19 8 views
0

私はSOのようなウェブサイトを持っています。ユーザーがアカウントを作成すると、そのアカウントは電子メールを開き、以前に送信したそのようなURLをクリックするまで非アクティブになります。ユーザーのアカウントを有効にする最適なアルゴリズム

さて、そのURLにはどのようなパラメータが含まれているはずですか?


現在、私はユーザーの電子メールをハッシュし、そのURLにパラメータとして渡します。だから、ユーザーがクリックすると、そのハッシュされた電子メールが取得され、比較されます。しかし、私のアルゴリズムは良くありません。なぜなら、ユーザーは電子メールを開かずに自分自身を電子メールでハッシュしてスクリプトに渡すことができるからです。よくわかっていますが、確認のためのアカウントURLを作成するにはどうすればよいですか?

+1

アプリだけが知っている何かと一緒にハッシュする必要があります。 –

+0

塩漬けのハッシュを見てください。 [この記事](http://security.stackexchange.com/questions/51959/why-are-salted-hashes-more-secure-for-password-storage)はパスワードを指しますが、同じ方法を使用することができますシングルユースアクティベーションリンク。次に、使用するまでキーをデータベースに保存してからレコードを削除します。 – Takarii

+0

通常、期限切れの日付を持つことをお勧めします。しばらくすると、期限切れの(非アクティブ化)アカウントをすべて削除してdbをクリーンアップすることができます。 – ChatterOne

答えて

2

ランダムな文字列を生成し、データベースのユーザーレコードに格納することができます。その後、その文字列を含むURLで電子メールを送信します。したがって、データベース内のその文字列を簡単に検索し、アカウントをアクティブにすることができます。

+0

emm、はい、それは悪くないです。ありがとうございました。 – stack

関連する問題