会員サイトで一般ユーザーがアクセスできるすべてのページで自動ログインを実装しようと思っているのですが、自動ログインはしたことがなくて処理を洗い出してみたのですが、セキュリティー的な観点でだめなところやこうした方がいいなどありましたら教えていただけるとありがたいです。
※クッキーの有効期限やセキュアなどはシステム側で指定します。(fuelphpです)
クッキーがない場合 ログイン画面へ遷移させる ログインする ログインに使用したアドレスとパスワードがDBに存在するか確認する 存在する場合 ログインに使用したアドレスとパスワードを組み合わせてハッシュ化する そのハッシュ値をクッキーに保存する セッションを張って、トップページへ 存在しない場合 ログイン画面へ戻りそんな会員いねえよという クッキーがある場合 クッキーに保存されているハッシュ値と、DBに保管されているアドレスとパスワードを組み合わせたハッシュ値が存在するか確認する。 一致する場合 ハッシュ値からアドレスとパスワードを復元し、自動ログインする セッションを張って、指定ページを表示 一致しない場合 アクセス端末の情報と位置情報と改竄回数を取得しDB保存 改竄回数が3回以内の場合 クッキーを改竄している可能性があるとみなし、警告画面を表示させる 改竄回数が3回以上の場合 なにかしらの処理
修正後
■説明に必要なテーブル user id name surname mail password user_token (パスワード変更時に新規token発行とパスワード記録) id user_id pwssword token limit ■おおまかな処理 クッキーがない場合 ログイン画面へ遷移させる ログインする ログインに使用したアドレスとパスワードがDBに存在するか確認する 存在する場合 ログインユーザーが所持するパスワードのトークンを取得 そのトークンをクッキーに保存する セッションを張って、トップページへ 存在しない場合 ログイン画面へ戻りそんな会員いねえよという クッキーがある場合 クッキーに保存されているトークンと、user_tokenにそのトークンが存在するか確認する。 存在する場合 user_tokenから遡りアドレスとパスワードを探し、自動ログインする セッションを張って、指定ページを表示 存在しない場合 アクセス端末の情報と位置情報と改竄回数を取得しDB保存 改竄回数が3回以内の場合 クッキーを改竄している可能性があるとみなし、警告画面を表示させる 改竄回数が3回以上の場合 なにかしらの処理

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/09 09:46
2017/12/09 14:04
2017/12/09 15:37 編集
2017/12/10 01:09