以下のCookieを使ってログインを維持する仕組みはセキュリティの観点から問題ありますでしょうか?
●ログインプロセス
1)ユーザーがIDとパスワードを入力
2)DBを照会し、合っていた場合はハッシュキーを発行。
DB側にそのハッシュキーを維持
3)2)で発行したハッシュキーをユーザーに対してCookieで付与
ログイン完了
●ログイン確認プロセス
1)Cookieに文字列があるか確認
2)文字列がある場合はその文字列をDBから検索
3)文字列がDBに保存されている場合、新しいハッシュキーを発行し、DBとユーザーのCookieを更新。ログインOKと表示。
文字列がDBに保存されていない場合はログインしていないと判断。
この場合、ログイン維持に全てCookieを利用しており、セッションは使っていません。
ユーザーは毎回アクセスする度にCookieで保持しているハッシュキー(Token)が更新され一応これでセキュリティは保持しているつもりです。
大きな欠陥などあれば教えてください。
ログインプロセスの2)で,ハッシュキーはどうやって計算しますか?
ハッシュキーが予測可能だと,それがセキュリティホールになります
いわゆるセッションを自前で実装したように見えますが,なぜPHP標準のセッションを使わないのでしょうか?