Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2013年3月9日
最終更新日:2013年12月26日

セッション管理の不備と対策(ASP.NET,C#,VB.NET編)

セッション管理の不備に対する根本的対策は、以下の記事を参照してください。

これを ASP.NET で実現すると以下のようになります。

■1.推測困難なセッション ID を利用する
ASP.NET のセッション ID の生成は特に問題ないので、ASP.NET のセッション ID 作成機能を利用します。

■2.セッション ID を URL に含めない
ASP.NET はデフォルトでセッション ID を URL に含みません。

■3.HTTPS 通信で利用する Cookie には secure 属性を付与する
ASP.NET で Cookie に secure 属性を付与するには以下のように記述します。HttpOnly 属性も付与したほうがよいでしょう。

・C#

・VB.NET

レスポンスヘッダーには以下のように出力されます。

セッション ID に secure 属性と HttpOnly 属性を付与する方法は以下の記事を参照してください。

■4-1.ログイン後にセッションを新規に開始する
■4-2.ログイン後にセッション ID とは別の秘密情報を持ち、各ページでその値をチェックする
ASP.NET にはセッション ID を振り直す機能がないため 4-1 は採用できません。そのため、ASP.NET では 4-2 の方法を採用します。

秘密情報は CSRF の独自トークンと同じ要件なので、CSRF の独自トークンを作成するクラスを流用します。詳しくは以下の記事を参照してください。

下図の簡単なログイン機能を作成します。

login

・Login.aspx(C#)

・Login.aspx(VB.NET)

・Tokenクラス(C#)

・Tokenクラス(VB.NET)

・Welcome.aspx(C#)

・Welcome.aspx(VB.NET)


スポンサーリンク




カテゴリー:Webアプリケーションセキュリティ

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA