2009-06-05 33 views

答えて

13

短い答えは...それに依存します。

ASP.NETでのセッションは、さまざまな方法(InProc/SQL Server/State Server)などで保存できます。クライアントセッションがどのようにメンテナンスされているかは、別のことです(クエリ文字列値、Cookieなど)。 。)

この答えではポスターは、ユーザーを認証し、セッション中に自分の名前を格納し、また、それらに関するいくつかの他の情報を格納することであろう時にあなたができる

Can we hack a site that just stores the username as a session variable?

一つのことを示唆しています。例えば彼らのUserAgentString、彼らのIPアドレスと異なるIPまたはUserAgentStringがセッションと対話しようとした場合、それを無効にすることができます。

+2

セッションに対するIPの格納は良いですが、同じIPグループ内の(つまり会社またはAOL内の)誰かに対してセッションハッキングの一般的な形式があるという問題はありません。 UserAgentにも同様の懸念があります(共通性がはるかに高い!) – annakata

1

何かが可能ですが、デフォルトでは難しいです。

一般に、セッションCookieを盗み出し、別のマシンで再作成することによってセッションをハイジャックします。しかし、これを行うには、WebサイトがCross Site Scriptingに対して脆弱でなければなりません(これは、ユーザー入力をエコーバックするときにServer.HtmlEncodeを使用して軽減できます)。もしあなたが脆弱になってしまった場合、ASP.NETセッションクッキーはHTTPのみとしてマークされます。つまり、ブラウザがサポートしていれば、クライアント側のスクリプトからアクセスすることはできません(Safariはこの設定を無視します)。

関連する問題