|
.NET TIPS [ASP.NET]クッキーをサポートしないクライアントでセッション機能を利用するには?山田 祥寛2004/07/30 |
![]() |
|
|
|
ASP.NETのセッション管理機構は、デフォルトでは、セッションIDの授受にクッキーを利用する。サーバはセッション開始時(ユーザーがWebページへのアクセスを開始したとき)に、クライアントに対して120bitで構成される任意のセッションIDをクッキーとして発行する。クライアントは、リクエストの都度、このセッションIDが格納されたクッキーをサーバに送信することで、サーバはユーザーごとにセッションを識別することができるというわけだ。
しかし、携帯端末など一部のクライアントでは、ブラウザがクッキー機能を持っていない場合が多い。また、クッキーが利用可能なブラウザでも、ユーザーの判断でクッキーが無効に設定されているようなケースもあるだろう。このような場合には、ASP.NETのセッション機能を利用することができないのだろうか。
否。このような環境下でもセッション機能を利用できるように、ASP.NETではクッキーレス・セッションと呼ばれる機能を提供している。クッキーレス・セッションとは、その名のとおり、クッキーを経由しないでもセッションIDを授受できる仕組みのことだ。
クッキーレス・セッションを利用するための手続きはごく単純だ。web.configの<sessionState>要素を以下のように設定するだけでよい。なお、<sessionState>要素は、仮想ディレクトリ直下のweb.configでしか設定できない点に注意すること。
|
|
| クッキーレス・セッションを利用するための手続き(web.config) | |
| クッキーレス・セッションを利用するには、web.configの<sessionState>要素のcookieless属性に"true"を設定する。 |
この状態で、ASP.NETアプリケーション内の任意のページの任意のリンクから別ページにアクセスしてみよう。例えば、ページ内に次のようなリンクがあるとする。
<a href="index.aspx">こちらへリンク</a> |
このような場合、このリンクをクリックすると、ブラウザのアドレス欄に以下のようなURLが示されているのが確認できるはずだ。
http://localhost/netIns/(1r3hm345osrrlq45ldvvjy55)/index.aspx |
カッコ内のデータがセッションIDを表す。ASP.NETにおいては、このようにURL文字列内にセッションIDを自動セットすることで、クッキー非対応のクライアントでもセッション機能を利用できるようになる。
ただし、クッキーレス・セッションにはセキュリティ上の問題がある。というのも、クッキーレス・セッションを利用した場合、(当たり前の話であるが)セッションIDが一般ユーザーの目に直接さらされることになる。つまり、URLさえ分かってしまえば、第三者による「なりすまし」も可能であるということだ。
ただし、このクッキーレス・セッションの脆弱性の問題は、クッキー経由でセッションIDの受け渡しを行った場合でもさほど事情は変わらない。ネットワークをモニタすることで、クッキーの内容などは簡単に盗聴できてしまうからだ。ただ、URLの方が「なりすまし」も「盗聴」も簡単であるという意味で、より危険であるといえる。しょせんは相対的なものといってしまえばそれまでだが、安全性がより重視される局面で、無用にクッキーレス・セッションを採用するべきではない(安全性を最大限に確保したいならば、クッキーによるセッション管理を採用したうえで、通信路をSSLで保護するのがより望ましいだろう)。![]()
| カテゴリ:Webフォーム 処理対象:セッション管理 使用キーワード:<sessionState>要素 |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


