2012-01-23 11 views
2

私はASP.NETアプリケーションのための招待システムを実装したいと思います。システム管理者は、セキュリティキーに関連付けられたDBに保存されている電子メールアドレスを追加できます。このセキュリティキーはリンクの電子メールに送信されます。ユーザーがリンクをクリックすると、新しいアカウントを登録することができ、すべてが実行されます。セキュリティキーを使用した招待

私はセキュリティ初心者ですので、シンプルで安全な方法があるかどうかを知りたいのですが(NASAのアーカイブではありません)、そのような仕組みを実装する方法は明らかです。

ありがとうございました!

答えて

2

私は2つの方法を考えることができます。

  • は、データベース内の行を作成し、招待状に行のIDとIDのHMACを置きます。たとえば、?Register.aspx?UserId=3&hmac=54oreijwgoro564i3j2o543です。クライアントは別のIDに対してHMACを再現できないため、単にURLを変更して別のユーザーを登録することはできません。
  • ランダムでユニークな文字列で行を作成します。文字列はランダムなので、推測するのは難しいです。ユーザーが?Register.aspx?Code=grewgkrwgoerwgrew432を要求すると、データベースでそのコードの行を検索します。いくつかのプロジェクトでは、ランダムトークンとしてguidを使用していますが、どのように安全/ランダムであるかわかりません。
+0

重要な点を見逃しました。使用後に既に使用されているコードをマークしてください。 – Gumbo

+0

私は最初のアイデアを好む!セキュリティに関して言えば、私のアプローチは良い考えですか? – Alessandro

+0

秘密を保持する長い鍵を使用するのであれば、HMACの使用は安全です。 HMACを生成して招待リンクを作成し、Register.aspxページで、指定されたHMACがIDと一致するかどうかをチェックインします。 – Sjoerd

関連する問題