セッションか、クッキーか

Read More

システムです


今回以下のものを実装しました。
・アドミンのコントロールパネルへのログイン情報保持機能


これはどういうものかというと、
「このログイン情報を記憶する」とかいうあれっぽいものです。
毎回ログインしようとする度に入力するのは面倒だものね


--
そもそも最近のブラウザはデフォルトで入力情報を記憶することができます
# モバイルはそんな機能無いと思うけど


ですが開発者としてはブラウザに依存するのは極力避けたい!


さらに将来的にはモバイルでも、アドミンのコンパネが操作できるようにするつもりなので、その時はモバイル版の方にも同じ機能を付けたい


今回の実装はその布石と言ったところです


--
今回実装するにあたって少し悩んだことがあります。
ログイン情報をどう保持するか、です。


スタンダードなのはクッキーに保存するパターンですが、
セキュリティー的な問題とモバイル版の問題を考えそれは止めました。


セキュリティー的な問題とは、
クッキーを保存してある所を覗けばログインIDとパスワードが判別できてしまうからです。
# 少なくとも開発する人間は容易

また暗号化して入れた場合、プログラム側で復号化する一手間がかかってしまいます。

またいくら暗号化しているからとはいえ、やはりローカルにパスワードを保存するのは気持ちが悪いです。

そもそも余計な情報をクッキーで管理するというのはローカルPCにゴミを溜めているのと同義です。

こういった理由からクッキーで管理するものは最大でも1つ(セッションID)だけにしたいものです。


モバイル版の問題とは、
モバイルはクッキーが使えない。
# いや最近のは知らない


--
一先ず今回はセッションで持たせることにしました。
サーバ側で保持すれば情報も容易に抜き取ることができなくなりますしね


ただサーバではガーベジコレクションが定期的に発動するので、対策としてサーバでの保持期間を延ばすなどの措置を取っています


モバイル版でのセッションの扱い方は、
URIにSIDを埋め込むことで使えるけどその方法は取りません。
# SIDを固定値にした場合はセッションハイジャック。変動値にした場合は画面バックの問題などがある為

その方法はアドミンページの実装タイミングで書くとします


--
ま、今回はこんなとこ



※一部修正:2011/08/19
「セッションジャック」は間違いで、「セッションハイジャック」が正しい言葉のようです。