phpとDBを使いパスワード変更ページ

このQ&Aのポイント
  • phpとdbを使用して会員制のサイトでパスワード変更ページを作成する方法について教えてください
  • 会員制のサイトでログインするために、メールアドレスとパスワードを使用する仕組みを作成しましたが、仮パスワードを発行し、変更するページを作りたいです
  • 暗号化された仮パスワードをデータベースで参照し、変更するソースコードを作ればいいのか教えてください
回答を見る
  • ベストアンサー

phpとDBを使いパスワード変更ページ

いつもお世話になっています。 今回phpとdbで実験的にサイトを作りました。会員制のサイトです。 実験的に作ったものでどこかで公開することはないのでセキュリティなどはガバガバです。 これからしっかり勉強していこうと思いますが、会員制のサイトをログインするにあたりメールアドレスとパスワードでログインしてもらうというようにしました。 パスワードを自分で決めてその内容を登録してログインすることはできたのですが、たまに見かける最初に仮パスワードを発行しその後でパスワード変更ページで変更してもらうというようなページを作りたいです。 このようなページは一体どのように作ればよろしいのでしょうか。 最初に発行した仮パスワードはsha1ファンクションを使って暗号化しています。 最初にdbないのパスワードを参照しその後に変更するようなソースをかけばよろしいのでしょうか とても初歩的な質問ですがお時間があればアドバイスお願いします。

  • PHP
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5085/13292)
回答No.1

簡単な流れとしては、まずメールアドレスを入力してもらいます。 そのメールアドレスとプログラムでランダムな文字列で作ったパスワードをDBに登録します。 その際、DBには仮パスワードである事を示すフラグを付けます。仮パスワードカラムでもいいですし、パスワード変更日時カラムを用意してNULLにしておくと言った手を取る場合もあります。 次に、入力されたメールアドレス宛に仮パスワードを記したメールを送信します。 利用者はログインページにアクセスしメールアドレスと仮パスワードを入力してログインします。 認証後、プログラム側で仮パスワードである事を確認したらパスワード変更ページ遷移させます。 新しいパスワードを入力してもらい、それをDBに保存したら仮パスワードフラグを消す。 と言った流れでしょうかね。 ユーザ情報にパスワード変更日時を残しておくと、前回の変更から○○日経過したのでパスワードを変更して下さいなんてメッセージを表示させる事もできます。

shiro857
質問者

お礼

返信が遅くなってしまって申し訳ありません。 アドバイス通りやったところ無事にできました。 ありがとうございました。

関連するQ&A

  • php パスワード 暗号化

    phpの会員サイトにてパスワードの暗号化を実装したいと思い、投稿させていただきました。 会員の人はパスワード変更→暗号化でDBに登録。 変更したパスワード(暗号化されている)でログインという流れを作りたいのですが、 暗号化でDBに登録まではできましたが、ログイン認証で一致せず困っております。 どなたか教えていただけないでしょうか? 例: <input type="password"name="password" value="1234"> $pass = $_POST[pass]; $password = crypt($pass); $passwordをDBに保存。 その後ログアウトし、ログインのパスワードで1234を入力すると「一致しません」となります。 login認証の際にどのように実装してよいのかわからず困っています。 また、上記の内容にてセキュリティ上に問題がありましたらご指摘お願いします。

    • 締切済み
    • PHP
  • 【PHPで認証】パスワードの暗号化は無意味では??

    PHPにて会員専用ページを作りたいと考えているものです。 パスワードは暗号化すれば安全…と思っていました。しかしよく考えると暗号化されたパスワードをハッカーが盗んで自分のPCのCookieに入れたらなりすましが可能ではないのか?ということに気づきました。正規のユーザーもログイン後は暗号化パスワードをサーバーに渡してページごとに認証しているわけですから。 パスワードの暗号化は本当に意味があるのでしょうか? 暗号化されたパスワードは盗まれても問題ないのでしょうか? お詳しい方、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 仮パスワードの必要性

    アドバイスお願いします。 会員制サイトを構築しようと思っています。 様々なサイトの会員登録で、いったん仮パスワードが発行されてから自分でパスワードを変更しなおすという仕組みがあるものを見かけます。 登録の際、はじめから自分の使いたいパスワードを設定させる仕組みで済むような気がするのですが、敢えて仮パスワード発行→パスワードのユーザによる変更という流れにする必要性がわかりません。 どうしてでしょうか?

  • 一人一人違うパスワードで、同じページを見られるようにしたい

    こんにちは。私は現在、あるサークルのサイトを運営しているのですが、サークルの会員以外に見られたくないページがあります。 現在、会員には会員番号が配布されていて、それをパスワードにしたいのですが、一人一人違うパスワードで、一つのページにログイン?することはできるのでしょうか? 複雑なHTMLはよくわからないので、回答にタグを表記して頂けると嬉しいです。

    • ベストアンサー
    • HTML
  • 教えて!のパスワード変更はどこからですか?

    この質問サイトのログイン時のパスワードを変更したのですが、 変更できるページを見つけることが出来ません。 教えてください。

  • パスワードを暗号化して保存

    VB.NET(VS2010)で開発しています。 パスワードを暗号化して保存したいのですがいまいち方法が わかりません。 当たり前ですがパスワードは任意で変更可能です。 それを暗号化して保存、そして次回からは変更されたパスワードを使ってDBへログイン。 暗号化したもの単体で複号出来ないと困ります。 なるべくiniファイルではなくVS2010やVS2008の機能(リソース?)で実装したいです。 よろしくお願いします。

  • パスワードの変更

    会員サイトを作っているのですが会員登録後のパスワード変更について質問です。 パスワードを忘れた際の再発行は秘密の質問等の特定のフィールドの値と入力された 値が一致すれば再発行で問題ないと思いますがマイページからパスワードを変更する 際に登録時に設定した文字数で表示されますよね?厳密には『●』で表示されますが。 一般的には、ハッシュ化した値を登録するかと思うのでどうやって実現しているのかわかりません。 方法が思いつかないのですが単純にハッシュ化する前のパスワードの文字数を専用の フィールドに登録しその文字数と同数『●』で表示しているだけですか? 調べてもわからなかったので教えてください。

    • ベストアンサー
    • PHP
  • このページだけパスワードを保全してくれません

    ノートPCを代えてから マグマグの発行者ログインページで クッキーやファイルを削除してからログインを試みても パスワードを保存してくれなくて毎回毎回ログインが面倒です。 なぜここだけパスワード保存の画面が出てこないのでしょうか? ほかの発行スタンドではこのようなことはありません。 わかる方がいたら教えていただけますか?

  • C# ログインコントロールのパスワード変更

    Webアプリケーションのログイン関連のページを作成中です。 DBのユーザーIDとパスワードから認証を行いログインさせています。 DBにフィールド(最終ログイン日、パスワード変更日等)を追加し、パスワードを定期的に変更させることを考えていますが、パスワードを変更させるPasswordchangeコントロール?で変更させようと思いますが、Loginコントロールと同じ画面上にコントロールを配置して運用することは可能でしょうか? 具体的にはWindowsのパスワード変更画面のようなイメージです。変更期間が2週間ほどあり、その間に変更させる。変更期間を超えた場合は変更キャンセル不可。さらに指定期間経過後はパスワードロックを掛ける、といった感じです。一度ログイン認証させておき、パスワード変更入力画面に遷移。どのようにやればよいでしょうか。お願いします。

  • もし、パスワードを忘れた場合

    もしもパスワードを忘れた場合、再発行をするみたいですが、一度gooでパスワードの登録を間違えてしまったみたいで、ログインできなかったとき、再発行しました。 gooでは、再び自分でパスワードを考えて、登録するので、登録後変更の必要はなさそうですが、一度Yahoo!IDのパスワードを忘れた時、郵便番号、秘密の質問と答えを入力して、自分で決めるのではなく、その次のページで表示されました。  それはセキュリティが高いとはいえないので、その後、自分で変更したほうがいいですか? gooの場合は、変更は必要なさそうですが、Yahoo!の場合、変更したほうが良いですか? 確かにYahoo!の場合変更ページに分かりやすいパスワードに変更してくださいと書いてありました。  あくまで、Yahoo!その変更は一度ログインして変更するためなのでしょうか? 教えてください。