• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【PHP】Basic認証以外でメジャーな認証方法は?)

PHPで安全な認証方法とは?

このQ&Aのポイント
  • PHP歴1年、MySQL歴3ヶ月程度の職業プログラマが、メンバー専用ページの認証方法について学びたい。
  • Basic認証より安全で一般的な認証方法はあるのか?ポップアップウインドウなしで、暗号化されたパスワード送信とログアウト機能も実装したい。
  • 環境はファーストサーバーで、PHP5.2.6(Apache DSO)、MySQL4.0.24、Linux 2.4.30を使用。PEAR/シェルは利用できない。

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

  • ベストアンサー
  • little-m
  • ベストアンサー率44% (45/102)
回答No.3

ANo.1です。 >ところでセッションに認証済みの情報を持たせるということは、 >管理すべき全てのページをPHPで動的に作るということでしょうか。  「管理する全てのページ」が具体的にどういう範囲かがちょっと判らないのではっきり答えられませんが、たとえば、「ログインしていなければ見る事のできないページ」であれば、この部分はphpで作成しておく必要があります。  ログインしていなくても見られて構わないページは通常のHTMLでもOKです。  ただし、携帯サイトなどのクッキーが使えないサイトの場合は、HTMLなどの静的ページからはセッションIDが引き渡せない場合があるので、この場合は全てphpで作成しないと、ログインが途中で切れてしまう場合はあります。

ikataro
質問者

補足

なるほど。 ここがディレクトリ指定一括処理のbasic認証とは違う部分ですね。 教えてgooもこの方法なんでしょうかね。 今回は勉強になりました。本当にありがとうございました。

その他の回答 (2)

  • little-m
  • ベストアンサー率44% (45/102)
回答No.2

ANo.1です。 >仮にSSLを使わないと仮定すると、3)でユーザーがサーバーに >パスワードを送信する際に盗聴されてしまうのではないかと思いま >すがそういう心配はないでしょうか?それともSSLは必須でしょ >うか。  漏洩しては困るデータを画面上で扱う場合はSSLの方がより安全ですので、SSLにした方がよいと思います。  ちなみに、漏洩しては困るデータとは、ID・パスワード以外にも、画面上に表示される個人情報なども同等ですから、ログイン画面だけ注意すればよい、という事にはならないと思います。  BASIC認証の場合も、認証後の画面でSSLで無い画面を使用していれば、SSL画面でアクセスしている場合に比べ、漏洩の危険は高いはずです。

ikataro
質問者

補足

なるほど! 守るものはパスワードだけじゃないんですね。やっぱりSSLは必須のようですね。 ところでセッションに認証済みの情報を持たせるということは、管理すべき全てのページをPHPで動的に作るということでしょうか。 たびたびですがよろしくお願いいたします。

  • little-m
  • ベストアンサー率44% (45/102)
回答No.1

当方がログインを作成する場合は、大抵以下のような作成とします。 1)ログイン画面や会員の画面はできるだけSSLの画面とする 2)ユーザーのパスワードを格納する場合はcrypt等で暗号化してDBやファイルに格納する 3)ログインフォーム(自作のフォーム画面)で入力されたIDとパスワードをチェックしてOKならば、セッションに認証済みの情報を持たせ、あとは、認証用のセッションが認証済みなら、ログイン済みとして各画面の制御をする。 大抵は上記のような感じで作成します。 以上、参考までに。

ikataro
質問者

補足

ありがとうございます。 仮にSSLを使わないと仮定すると、3)でユーザーがサーバーにパスワードを送信する際に盗聴されてしまうのではないかと思いますがそういう心配はないでしょうか?それともSSLは必須でしょうか。 よろしくお願いいたします。

関連するQ&A

専門家に質問してみよう