- 締切済み
セッション管理もどきを自作で
通販サイトを作ろうとしています。 ログインにはIDとPASSが必要ですが、ログイン中であることを知るためにログイン成功時にIDとPASSをそのまんまクッキーに記録しています。 その時点でセキュリティは最悪なので、セッションID管理というやつをやろうと思ったのですが、 CGI::Sessionだか何だかの説明ページが全く持って意味不明でしたので それっぽいことを自作しようと思います。 以下の流れのプログラムでセッション管理と同じような事をしていると思うのですが、あっていますか。セッション管理というものがいまいち分かりません。 ・WEBページよりIDとPASSを入力してログイン ↓ ・データベースにアクセスし、正しい情報であれば、 ランダムに作成した20桁くらいの文字列+IDをクッキーに保存、 その文字列をデータベースに保存、同時にIPアドレスも保存。 保存した時間も保存する。 (例:ID=OSIETE だったら、afkgiornsfshifownsiwOSIETE みたいな文字列になる) ↓ ・ページを移動するたびにクッキーから文字列を取得し データベースに保存されているかを調べる。 同一の文字列および同一のIP、および保存時間が現在時刻の24時間でなければNGとする。 ↓ ・ログアウト時、クッキーに保存された文字列と同じものをデータベースから削除する
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- gon987
- ベストアンサー率16% (53/312)
>その時点でセキュリティは最悪なので、 CGI::Sessionの使い方がわからないレベルの質問者が自作でセッション処理を作ったところでその作ったプログラムがセキュリティーに問題がある物になる可能性が高いですから中途半端な知識で下手に自作するより CGI::Sessionが使えるようにした方がいいでしょう。
- pick52
- ベストアンサー率35% (166/466)
CGI::Sessionなら以下のサイトとか見るともうちょっとは分かりやすい かも。 http://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A1%E3%83%A2%2FCGI%3A%3ASession%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB こんなモジュールもあります。 http://digit.que.ne.jp/work/index.cgi?Perl%e3%83%a2%e3%82%b8%e3%83%a5%e3%83%bc%e3%83%ab%2fWalrus%3a%3aSession%3a%3aLite