6

フォーム認証を使用しているのはASP.NETです。私は学校のプロジェクトのために浸透テストを実行しています。LENS -ASP.NET PENETRATINGTESTINGTOOLを使用しています。結果では、私のアプリケーションはセッション固定に対して脆弱である可能性があることがわかりました。これをどのように軽減できるか知っている人はいますか?

ありがとう

4

1 に答える 1

12

セッション固定とは、ある人物が別の人物のセッション識別子 (SID) を固定する攻撃です。

攻撃は、攻撃者が Web サイトにアクセスして有効なセッションを確立することから始まります。アプリケーションがセッション ID を含む Cookie を配信すると、攻撃者は既知の適切なセッションを修正またはロックインします。次に、攻撃者は被害者をだましてこのセッション ID を使用させます。この時点で、攻撃者と被害者は同じセッション ID を共有しています。この固定されたセッションに保存された情報は、被害者のために決定を下したり、被害者だけが見る必要がある情報を表示したりするために使用され、攻撃者によって使用および表示される可能性があります! 詳しくはこちらをご覧ください

これに対する唯一の回避策は、認証が成功した後に ASP.NET が新しいセッション ID を発行することです。これにより、被害者がログインすると、攻撃者はセッションにアクセスできなくなります。覚えておくべきもう 1 つのポイント:ユーザーがログインするまで、決してセッションを配信しないでください。

ASP.net では、Session.Abandon()このタスクには不十分であることに注意してください。ユーザーのブラウザーからセッション ID Cookie が削除されないため、同じアプリケーションへの新しい要求は、セッションが破棄された後、同じセッション ID と新しいセッション状態インスタンス! マイクロソフトがここに述べているように。セッションを破棄し、セッション ID Cookieクリアする必要があります。

Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));

ファイル内のフォーム認証 Cookie 名を変更することもお勧めしweb.configます。

<authentication mode="Forms">
  <forms name=".CookieName" loginUrl="LoginPage.aspx" />
</authentication>

これは、セッション攻撃と ASP.NETおよびその解決方法に関する優れた記事です。

于 2012-06-03T10:21:30.273 に答える