かなり大規模な ASP.NET Web アプリケーション (C#) で多くのセキュリティ問題に対処しようとしています。セッション固定攻撃を防ぐために、ユーザーが自分自身を認証するたびに新しいセッション ID を生成したいと考えています。ただし、残りのセッションを失うことなく、新しいセッション ID のみを生成したいと考えています。このトピックについていくつかの調査を行った後、いくつかの実用的な解決策を見つけました。
解決策 1: ASP.NET で新しい SessionId を生成
する これは、セッション Cookie を空の文字列に設定して手動でクリアすることを提案しています。ただし、これには、ページを更新するか、AJAX を使用して Cookie が実際に削除されるようにする必要があります。これは、私の特定のケースでは実際には実行可能なオプションではありません。
解決策 2:現在の HTTPContext で新しい ASP.NET セッションを生成する
このアプローチを実装しましたが、期待どおりに動作します。ただし、元のポスターが述べているように、これはエレガントなソリューションとは言えません。また、この投稿は数年前のものであるため、最近はより良い解決策があるかもしれないと期待しています.
私が知りたいのは、私の研究で見逃した代替手段があるかどうか、またはセッション管理の内部を操作せずにソリューション 2 のようなことが可能かどうかです。