- 締切済み
安全にログイン状態を記憶させるには?
現在、Webサービスを作成しているのですが、 そこでログイン状態をユーザーに記憶させる方法がわかりません。 簡単に考えれば、 CookieにIDとPasswdを記憶すればいいのですが、 これだとセキュリティ上問題です。 ですので、どうしていいかわかりません。 Webサービスに使用できるのは、Ruby,JavaScript,MySQLです。 同じようなことで悩んで、解決した方、 また、どうすればいいかアイデアがある方、 是非その知恵をお貸しください;
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mtaka2
- ベストアンサー率73% (867/1179)
回答No.1
そういう場合は「セッション管理」を行うのが普通です。 サーバー側で、ログイン時に、 「IDとパスワード」および「ログイン日時や使用端末のIPアドレス」などをとりまとめた「セッション」を作成してDBなどに記録し、 ブラウザにはCookieとしてセッションを識別する「セッションID」を渡します。 あとは、ログイン状態の確認は、セッションIDからセッション状態を調べることで行います。 日時をチェックしてタイムアウトさせたり、IPアドレスが異なる端末からのアクセスをはじくことで、 「盗まれたCookieを使って別端末からアクセス」することが防げます。 詳しくは「セッション」をキーワードにして調べてください。(ruby なら、cgi/session があります)
補足
回答ありがとうございます。 セッションを使う方法ですね、一応聞いたことありました。 ただ、「セッション」というものが、いまいちよく理解できません。 mtaka2さんの説明されている解説は分かるのですが、Rubyのcgi/sessionがわかりません。 ローカルにはcookieで保存されていて、サーバにはどこに保存されているのでしょうか? そもそも、初期設定だとセッションファイルが644になる時点であまり信頼できません。 Googleなどで検索しても、cgi/sessionに関する詳しい説明は見つからず・・・ Rubyの公式リファレンスじゃ分かりにくいので、わかりやすく解説されているサイトを御存知ではないでしょうか?