2016-08-12 10 views
0

私は2つの異なるタイプのユーザーのためにそれぞれ異なる登録フォームを使ってWebアプリケーションを構築しています。私はそれらのフォームを分割して、フォームが検証された後に検証電子メールを送ることができます。電子メール確認後のプロフィールの完成

しかし、ユーザーが自分の電子メールアドレスとユーザータイプを入力する一般的な小さなフォームが1つあることをお勧めします。次に、サーバーは、選択したユーザーの種類に応じて、プロファイルをさらに完成させるためのリンク付きの検証電子メールを送信します。

私の質問は、小規模登録フォームにパスワードフィールドを含める必要がありますか?私は以前、多くのウェブサイトでそれを見てきましたが、なぜそれを含めるのか分かりません。私の計画は、プロファイルの完成時にユーザーが自分のパスワードを選択できるようにすることです。ユーザーがプロファイルを完成するまでは、ユーザーに関する情報は保存されません(私は電子メールアドレスをURLのタイムスタンプで安全にハッシュします)。

答えて

1

一般に、開発者は登録時にパスワードを含むすべての詳細を尋ね、同じパスワードを使用してログインすることができます。ただし、未確認のユーザーがアプリケーションの機能の一部または全部にアクセスするリスクはあります。場合によっては、このアプリケーションでは24時間から72時間の時間枠でユーザーアカウントを有効にすることもできます。この期間内にユーザーはいくつかの制限事項でアカウントにアクセスできます。

機密アプリケーションの場合は、ユーザーが電子メールアドレスを確認したらパスワードを尋ねることができます。したがって、あなたは検証されたユーザーについて保証されています。

検証されていないユーザーアカウントにアクセスする機能を提供する場合は、未確認のアカウントユーザーが、アプリケーションのコンテキストに応じて制限されたアカウントにアクセスできるようにしてください。

+0

確認されたユーザーだけが、アプリケーションまたはそのアカウントにアクセスできます。私が前に言ったように、電子メールはタイムスタンプ(私は24時間の時間枠を許しています)と共に、安全にハッシュされます。このハッシュはURLに追加され、提供された電子メールアドレスに送信されます。このようにすれば、セキュリティ上のリスクはありますか? – Y4sper

+1

これは、検証されたユーザーのみがアプリケーションにアクセスできるようにすることをお勧めします。あなたが言ったように、検証プロセスのタイムスタンプを使って安全にハッシュを作成しています。 SHA256以上のような強力なハッシングアルゴリズムを使用している場合は、セキュリティ上の問題はありません。 [参照](https://en.wikipedia.org/wiki/Secure_Hash_Algorithm) –

+1

さらに、セキュリティの観点から注意が必要です。 - パスワードリセットURL、登録URLは一意のトークンを持つ必要があります - 一意のトークンを無効にする必要があります一度使用された - アプリケーションコンテキストごとに24時間から72時間以内に一意のトークンを無効にする必要があります - トークンを推測しないでください - パスワードリセットページにはサードパーティのライブラリ/ CSS/javascriptが含まれてはいけません。第三者からのURLおよび内部の悪意のあるユーザーがそれを使用できる –

関連する問題