電子書籍の厳選無料作品が豊富!

現在、Webサービスを作成しているのですが、
そこでログイン状態をユーザーに記憶させる方法がわかりません。

簡単に考えれば、
CookieにIDとPasswdを記憶すればいいのですが、
これだとセキュリティ上問題です。

ですので、どうしていいかわかりません。

Webサービスに使用できるのは、Ruby,JavaScript,MySQLです。


同じようなことで悩んで、解決した方、
また、どうすればいいかアイデアがある方、
是非その知恵をお貸しください;

A 回答 (1件)

そういう場合は「セッション管理」を行うのが普通です。


サーバー側で、ログイン時に、
「IDとパスワード」および「ログイン日時や使用端末のIPアドレス」などをとりまとめた「セッション」を作成してDBなどに記録し、
ブラウザにはCookieとしてセッションを識別する「セッションID」を渡します。

あとは、ログイン状態の確認は、セッションIDからセッション状態を調べることで行います。
日時をチェックしてタイムアウトさせたり、IPアドレスが異なる端末からのアクセスをはじくことで、
「盗まれたCookieを使って別端末からアクセス」することが防げます。

詳しくは「セッション」をキーワードにして調べてください。(ruby なら、cgi/session があります)

この回答への補足

回答ありがとうございます。

セッションを使う方法ですね、一応聞いたことありました。
ただ、「セッション」というものが、いまいちよく理解できません。
mtaka2さんの説明されている解説は分かるのですが、Rubyのcgi/sessionがわかりません。
ローカルにはcookieで保存されていて、サーバにはどこに保存されているのでしょうか?
そもそも、初期設定だとセッションファイルが644になる時点であまり信頼できません。

Googleなどで検索しても、cgi/sessionに関する詳しい説明は見つからず・・・
Rubyの公式リファレンスじゃ分かりにくいので、わかりやすく解説されているサイトを御存知ではないでしょうか?

補足日時:2011/02/15 02:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!