-3

私の現在のシステムは次のように機能します。

登録中

  1. ユーザーは、使用したい電子メールを入力します。
  2. ユーザーはパスワードを入力します。
  3. ユーザーが [OK] をクリックすると、JavaScript を使用して電子メール アカウントに電子メールとパスワードが送信されます
  4. メールを確認すると、ユーザーのメールアドレスとパスワードが見つかりました。
  5. 電子メールとパスワードを mysql データベースに入れました。また、データベースにランダム ID を入力しました

ログイン中

  1. ユーザーは自分の電子メールとパスワードを入力します。
  2. パスワードが正しければ、ユーザーは JavaScript で送信された電子メールを受け取ります。
  3. 電子メールにはhttp://mywebsite.com/loggedin?id=INSERT_ID_HEREのようなリンクが含まれており、ID はステップ 5 の mysql データベース内のランダム ID です。
  4. 次に、Web サイトは、ユーザーがログインしていることを示す Cookie を PHP に保存します。

これは良いシステムですか?良くする方法はありますか?

4

2 に答える 2

1

データベースに保存できるのに、なぜ電子メールを送信する必要があるのでしょうか。メールアドレスを確認するための確認リンクを送信した場合のみ。そして、それは JavaScript ではなく PHP から行う必要があります。

プレーンテキストのパスワードを保存しないでください。crypt ()でハッシュして、操作のリソースを高く (遅く) 保ちます。

ID と Cookie を使用する理由 JavaScript が方程式でメールを送信するのはなぜですか? セッション ハッシュを Cookie に保存します。ユーザー名、パスワード、およびソルトに対して検証します。また、UserAgent + IP を使用して、XSS の試みを強制終了します。また、MySQL が多くの行でハッシュを実行するのを防ぐためだけに、セッション テーブルを用意すると便利です。このように適切なインデックスを作成することで、必要な数のユーザーを持つことができ、現在のセッションの検索と検証についてはきびきびと行うことができます。

ユーザー認証とセッションにアプローチする方法はたくさんあります。それらのどれもあなたのものと一致しません。

于 2013-06-16T22:03:56.337 に答える
0

次のことを行う必要があります。

  1. ユーザーが詳細を送信する HTML フォームを用意します。
  2. php を使用して入力を検証する
  3. メールアドレスがデータベースにまだ登録されていないことを確認してください
  4. 新しい詳細をデータベースに挿入します
  5. PHP の「メール」機能を使用して、確認メールをユーザーに送信します (必須ではありませんが、良い感じです)。

6 ログインしたら、php 'session' 変数を 'logged in' に設定します。

于 2013-06-16T22:02:32.120 に答える