0

Web サービスを介してアクセスできるユーザー データベースがあります。Web サービス メソッドの 1 つは次のようなものです。

public void login(string name, string password, out user_key)

私のコントローラーでは、次のようなことをしたい:

String key = repo.login(username, password); // a wraper on the login method
if(key ....)
    FormsAuthentication.SetAuthCookie(username, false); 

質問があります。このキーは、特定のユーザー データを取得するために使用されます。鍵にアクセスできるようにするには、鍵をどこに置くのですか? FormsAuthentication クラスのメソッドがあることを意味します。Session ["key"] = keyのようなことを言う のは、私には良い習慣のようには見えません。そして、ここでの良い習慣は何ですか? 悪者が私のセッションをハッキングしないように。

4

2 に答える 2

1

どういう意味かよくわからない

Session["key"]=キーは私には良い習慣のようには見えません

私はController.HttpContext.Session長い間そのようなものを使用していて、少しも罪悪感を感じません。

ハッキングされることを心配したい場合は、データベースに渡される前に、GETパラメーターが適切にサニタイズされていることを確認する必要があります。それは重要です。

于 2009-11-16T15:23:05.943 に答える
0

セッションはASP.NETの認証Cookieから分離されているため、セッションを乗っ取るには、攻撃者は認証CookieとセッションCookieの両方を複製する必要があります。

ユーザー情報を生成する前にuserDataを受け入れるコンストラクターのいずれかを使用し、 UserDataプロパティを介して読み取ることにより、認証チケットの一部としてユーザー情報を書き込むことができます。ただし、このユーザーキーが機密である場合は、認証Cookieを暗号化することをお勧めします。これはASP.NETのデフォルトですが、具体的に説明する価値があります。

<forms protection="All" >

web.configに

于 2009-11-16T15:24:48.467 に答える