このブログを検索

2013/02/09

セッション管理の必要性

さて、ログインの仕組みを作ってみたいと考えている。

パスワードを画面上で隠す方法はわかった。

次は、それを送信する時に暗号化すればいいのだろうと考えた。

最初はperlのcrypt関数を使おうとしたが、8文字までしかチェックできないので、Digest::MD5を使うことにした。

かんたんなテストプログラムで動作を確認してさあCGIで使おうと思ったところで、止まった。

postというのは、入力した値を処理するスクリプトを指定するだけであり、

入力された値を加工してから、つまり暗号化してから、渡すことができない。

ブラウザ上では見えないが、パケットキャプチャをすると当然平文パスワードが丸見えである。

このパスワードを認証するcgiに渡してからmd5ハッシュを作ってもしょうがない。

だがどう考えても、通信自体が暗号化されていなければパスワードを暗号化して渡すことはできない。

さらっと検索しても少なくともperlでcgiを書くだけではできないようだ。

だからみんなhttpsを使っているというわけなのか。

ただ私はほんのお遊びのサイトなので、簡易的なパスワードでかまわない。

どうせ見えるのなら、平文でやりとりするかな。

apacheのベーシック認証で、アクセス制限することはできる。

が、そもそもやりたいのはアクセス制限ではなく、カスタマイズされたページの表示である。

今はどのサイトでもログインしてそのユーザ用のページを表示する。amazon, twitter, google, yahoo... なんでもそうだ。

そのためにはセッション管理が必要である。