2012-03-12 15 views
1

認証ロジックに新たな失敗がありましたが、誰かが私がここで何か不足しているかどうかを教えてもらえますか?私はこのようなものを使ってユーザーを検証します。ASP.netとの安全な認証

 if (validateUser(form.Email, form.Password)) 
     { 
      return signIn(form.Email); 
     } 

validateUser関数はブール値を返します。サインインしてからこのようなことをしてください。

public void signIn(string email) 
    { 
     FormsAuthentication.SetAuthCookie(nameOfUser, false); 
    } 

これにより、これ以降のすべてのリクエストでこのようなことが可能になります。

string userEmail = User.Identity.Name; 
Profile p = Profile.getProfileFor(userEmail); 

これは少し安全すぎるようです。私がここで紛失しているものは何か/盲目的に明らかなセキュリティリスクはありますか?それとも、これは基本的にどのように行われていますか?

よろしく、それは、正しい行われている方法です

マイク

+0

? –

答えて

2

ありますので、より多くのあなたが安心して行うことができます。

  • 暗号化パスワード
  • ログイン攻撃
  • 利用の代わりに電子メールの整数ID列を識別するためのIPアドレスを持つすべてのログインの試み:

    これは、アプリをよりリーンで高速にします。

    電子メールの代わりに番号を使用すると、ハッカーは情報(ユーザー)をハックするのに時間がかかるでしょう。

あなたは彼の電子メールを持っているだけで、ユーザーから多くを学ぶことができます。

  • あなたはそれが安全ではないことを考えさせる何キャッシュアイデンティティ
  • 使用の役割
1



セキュリティ上の唯一の注意点は、エンドユーザーがブラウザに入力したすべての値が、パスワードを含めてプレーンテキストでサーバーに返送される点で、すべてのフォーム投稿と同じです。したがって、これは誰かがhttpsを使用してその問題を回避するためのトラフィックの盗聴を試みる可能性を示します。

2

理論的には、中間攻撃では人を避けるためにHTTPSを使用する必要がありますが、これはコードで行われることではありません。また、パスワードをハッシュしているかどうかは、コードからは分かりません。

BTW .NETの規約では、メソッド名にPascalCaseを使用しています。

関連する問題