• ベストアンサー

会員制サイトのセキュリティについて

ある会員制のサイトを作っているのですが、ログイン部分やセッションなどについて、今ひとつ自信がないので質問させていただきます。 1.ユーザー名とパスワードを登録してもらい、パスワードはMD5で暗号化した上で、MySqlに保存。 2.ユーザー名とパスワードを入力してもらい、MySqlの内容と照合し、正しかったら、ユーザー名をセッション変数に入れる。 3.サイト内各ページで、セッション変数によって本人確認を行う。 以上のような仕組みなのですが、何か問題点はありますでしょうか。 特に3番目でセッション変数にそのままユーザー名を入れるというのは、なりすましをされる危険性などはないでしょうか。 ご回答宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

> 以上のような仕組みなのですが、何か問題点はありますでしょうか。 仕組み上は特に大きな問題はないと思います。 > 特に3番目でセッション変数にそのままユーザー名を入れるというのは、なりすましをされる危険性などはないでしょうか。 「なりすまし」を防ぐためには暗号化+認証を行う以外にはありません。 最も簡単に暗号化+認証を導入できる方法は SSL です。 もちろんサーバ証明書を入手する必要はありますが・・・。

noname#169297
質問者

お礼

>最も簡単に暗号化+認証を導入できる方法は SSL です。 現在SSLが使える環境ではないのですが、検討してみます。 ご回答ありがとうございました。

その他の回答 (2)

  • LACOMS
  • ベストアンサー率65% (15/23)
回答No.3

2.についてですが、SQLインジェクション対策が必要になるかもしれません。ユーザ名やパスワードに特殊な文字列を追加してSQLを偽造してデータベースを操作しようとするものです。これで、不正にログインされたり、データベースの不正操作が行われる可能性があります。 詳しくは、以下のURLを参考にしてください。 http://www.atmarkit.co.jp/fsecurity/rensai/webhole02/webhole01.html

参考URL:
http://www.atmarkit.co.jp/fsecurity/rensai/webhole02/webhole01.html
noname#169297
質問者

お礼

SQLインジェクションですが、一応プレースホルダを使って、対策をしていますが、気をつけたいと思います。 ご回答ありがとうございました。

回答No.1

そんなに心配ならたえずパスワードチェックもしたらどうですか? 後は単純な会員サイトならWebサーバ側のベーシック認証を 使うとか

noname#169297
質問者

お礼

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