« はてブニュースにニコニコ動画 | メイン | 9月20日 一日中 »

2007年09月20日

携帯電話でのセッション管理

実際に実行したわけではなく、アイデア段階ということに留意して頂きたい。

位置情報エンタメ・ゲームサイトでは、セッションをわざと乗っ取らせて自分の分身をたくさん作った方が、明らかに有利になります。

ゲームでは、1アカウントを複数人で利用するほうが有利になるから、それを防ぎたいというのがこの話題。PC サイトでは、1人が複数のウインドウを開いて作業を行うことが想定されるが、携帯では、1端末1ウインドウしか開くことが出来ない。この特色を利用すれば良いわけでは?

すなわち、ページを移動するごとに、新たなセッションキーを発行するということ。

どうよ?

user_id ユーザ ID (Unique Key 1)
session_key セッションキー (Unique Key 2)
session_key_prev 直前のセッションキー
user_agent UserAgent
expires 有効期限

DB の構造は、上記のようになると思う。

0. session_key の配布を行う (新規セッション開始)
1. session_key と user_agent の照合を行う (失敗時はパスワード認証ページへ)
2. session_key を session_key_prev に移す
3. session_key に新たなキーを配布
4. ページ表示 (ページ内のリンクは 3 の session_key を渡す)

アプリケーションの手順は、これで良いかな。

携帯電話は、1ウインドウしか表示できないので、セッションキーを毎回更新しても問題ない。ただし、リンクを辿らずに「戻る」の動作を行った場合、直前のセッションキーをフォローする必要もあり session_key_prev を準備した。実際にフォローを行う際は、アプリケーションの手順中の 1 の照合作業で OR 条件にすれば大丈夫。永遠に「戻る」動作を行った奴は、放置ということで。

PC サイトでも同様の実装を行っているところは、多いのじゃないかな。PC は、クッキーでセッションを保持するから、戻るボタンを押しても問題ない(複数のウインドウで作業をするとログアウトしてしまうが)。

単純すぎるので、別の問題があるのかな。やるおの中の人にフルボッコされる予感…。

【関連情報】
・勝手サイトでは、位置情報詐称だけでなくユーザ詐称も大きな敵 - ここギコ!
 http://kokogiko.net/m/archives/002068.html

2007年09月20日 16:57 | Memo

トラックバック

コメント