c# - セキュリティキーを使用した招待

原文 c# asp.net security

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

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

ありがとうございました!
答え
私は2つの方法を考えることができます:


データベースに行を作成し、行のIDとIDのHMACを招待状に入れます。たとえば、?Register.aspx?UserId=3&hmac=54oreijwgoro564i3j2o543。クライアントは別のIDのHMACを複製できないため、URLを変更して別のユーザーを登録することはできません。
ランダムで一意の文字列で行を作成します。文字列はランダムであるため、推測するのは困難です。ユーザーが?Register.aspx?Code=grewgkrwgoerwgrew432を要求したら、そのコードを含む行をデータベースで検索します。一部のプロジェクトでは、guidをランダムトークンとして使用していますが、安全性/ランダム性がどれほどかはわかりません。
関連記事

c# - 2つのxmlノードを比較する方法は?

c# - UDPを使用したアプリケーション間の双方向通信

c# - WPFビデオプレーヤーでフレームにアクセスする

c# - ASP.NET MVC3、Razor-JavaScriptでのViewBagまたはURL変数の使用

c# - Winformsはビットマップ画像をクリアしますか?

c# - 待っているラムダ

c# - ウィンドウのPNGスクリーンショットを撮るが、空気透過性は維持する

c# - 非ブロッキングブロックからブロッキングコードを呼び出すときの制御の流れを理解していますか?

c# - IronPythonでILMergeを使用する

c# - ListViewオブジェクト参照がオブジェクトのインスタンスに設定されていません