コードスペランカー

ゲーム開発日誌など

Web上でのクッキーを使ったセッション管理

まずはクッキーの発行

HttpCookie mc = new HttpCookie("MyTestCookie");
DateTime now = DateTime.Now;
// クッキーの値に発行した時間
mc.Value = now.ToString();
// 有効期限は発行後1分間
mc.Expires = now.AddMinutes(1);

Response.Cookies.Add(mc);
Response.Write("<p> クッキーを発行しました</P>");

続いてクッキーの受信

HttpCookie mc = new HttpCookie("MyTestCookie");
mc = Request.Cookies["MyTestCookie"];
if (mc != null)
{
    Response.Write("<p> クッキーを受信しました</p>");
    Response.Write(mc.Value);
}

クッキーが偽造されていないという前提であれば、クッキーの受け渡しができたかどうかだけ見ればセッションの管理は可能となる。となると後は偽造対策になるわけだが、サーバ側に接続したクラインとのIPを保存し過去に発行したクッキーの送り先と一致するかを確認することで、簡単な偽造対策になると考えられる。まぁ抜け道はあるがあくまで簡易的なものとして利用できそうだ。