2012-04-28 10 views
0

最後に私が作ったのは、私がもっと学んだことで分かったので、私はPHPを練習するために新しいログインシステムを作っています...特定の方法でログインシステムを保護

とにかく、本質的に私は本当にそれを安全にする方法についてちょっと混乱しています。ページあたりのユーザーを認証する必要はないというこの状態に関する同様のものに対する多くの答え。彼らはただ承認される必要があるということです。しかし、たとえば、アカウントのパスワードが変更されたときに、アカウントに現在ログインしているすべてのユーザーを強制的にログアウトさせることができるようにしたかったとします(実際にパスワードを変更したユーザーはログインしています。単純な十分なタスク...)。

パスワードが何らかの形で格納されている場合は、データベース内のユーザー資格情報と比較できるように、この作業を考える唯一の方法があります。

基本的に、私はこのためのいくつかの質問があります

  1. をなぜほとんどの人はそれがログインシステムの作業をこのように作る価値はないと思いますか?
  2. 私は見落としているこれを行うのばかげた簡単な方法はありますか? (いずれにしても、誰かが私にそれをする方法を指示できるなら、私はそれを高く評価します)
  3. ログインシステムがあなたを覚えているとき、クッキーが安全であり、あなたを覚えている?

ありがとう!

答えて

1

良いセキュリティは、認証の複数のレベルに依存しています...セッションやクッキーに認証データを保存し、パスワードを暗号化するなど

を、これは仕事ができる方法として、あなたの質問に答えるために。

認証されたユーザーの後にCookieを保存し、パスワードハッシュを含むセッション変数を設定する基本認証クラスを作成できます。ユーザーが各ページで認証されたことを確認するために使用する方法は、ハッシュと比較してパスワードをデータベースでチェックできます。変更された場合、認証は失敗します。

https接続でCookieを設定することができます。 httpsでなければクッキーを設定しません。また、setcookie関数には、クッキーをhttpのみに制限するパラメータがあり、javascriptはクロスサイトスクリプトのようなクッキーを保持できません。 http://php.net/manual/en/function.setcookie.php

セキュリティとは、何かがどのように機能し、どのように悪用されるかを理解することです。

1

これを行うための基本的な方法があります:ログイン時

- あなたは文字列にセッションID、塩、およびユーザーのパスワードハッシュを連結して、MD5、それをハッシュ。それを「認証」などと呼ばれるクッキーに格納します。

ページをリクエストすると、ユーザーのパスワード、セッションID、ソルトのmd5ハッシュが「認証」クッキーであるデータベースから選択するだけです。このようにして一致しない場合、ユーザーはログインするよう求められます。

関連する問題