• 締切済み

安全にログイン状態を記憶させるには?

現在、Webサービスを作成しているのですが、 そこでログイン状態をユーザーに記憶させる方法がわかりません。 簡単に考えれば、 CookieにIDとPasswdを記憶すればいいのですが、 これだとセキュリティ上問題です。 ですので、どうしていいかわかりません。 Webサービスに使用できるのは、Ruby,JavaScript,MySQLです。 同じようなことで悩んで、解決した方、 また、どうすればいいかアイデアがある方、 是非その知恵をお貸しください;

みんなの回答

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

そういう場合は「セッション管理」を行うのが普通です。 サーバー側で、ログイン時に、 「IDとパスワード」および「ログイン日時や使用端末のIPアドレス」などをとりまとめた「セッション」を作成してDBなどに記録し、 ブラウザにはCookieとしてセッションを識別する「セッションID」を渡します。 あとは、ログイン状態の確認は、セッションIDからセッション状態を調べることで行います。 日時をチェックしてタイムアウトさせたり、IPアドレスが異なる端末からのアクセスをはじくことで、 「盗まれたCookieを使って別端末からアクセス」することが防げます。 詳しくは「セッション」をキーワードにして調べてください。(ruby なら、cgi/session があります)

rrd
質問者

補足

回答ありがとうございます。 セッションを使う方法ですね、一応聞いたことありました。 ただ、「セッション」というものが、いまいちよく理解できません。 mtaka2さんの説明されている解説は分かるのですが、Rubyのcgi/sessionがわかりません。 ローカルにはcookieで保存されていて、サーバにはどこに保存されているのでしょうか? そもそも、初期設定だとセッションファイルが644になる時点であまり信頼できません。 Googleなどで検索しても、cgi/sessionに関する詳しい説明は見つからず・・・ Rubyの公式リファレンスじゃ分かりにくいので、わかりやすく解説されているサイトを御存知ではないでしょうか?

関連するQ&A