2012-04-03 12 views
2

この機能は、1人のユーザーでの簡易ログイン機能には適していますか?PHP:クイックログイン機能?

function auth($post, $session) 
{ 
    if(isset($post["username"]) && isset($post["password"])) 
    { 
     $session["user"] = new stdClass(); 
     $session["user"]->username = $post["username"]; 
     $session["user"]->password = $post["password"]; 
    } 

    if(isset($session["user"])) 
     if(is_object($session["user"])) 
      if($session["user"]->username == "admin" && $session["user"]->password == "test") 
       return true; 

    return false; 
} 

これは機能しますが、改善する必要がありますか?

+0

1つの可能な改善点:ログインに成功した場合にのみ、ユーザーオブジェクトをセッションに追加できます。 – bfavaretto

+0

これは間違いなく機能しますが、安全ではなく、開発/テスト環境でのみ意味があります。私はこのようなものをプロダクションサーバーには置かないでしょう。 – Joe

+1

@ジョー:なぜ、あなたはしませんでしたか?どのような方法でそれはセキュアではありませんか? (ハッシュと塩は大きく改善されるはずですが、単純なシングルユーザーシステムのデータベースよりも実際には優れています)。 – Ryan

答えて

1

セッションを使用して、ユーザーがログインしているかどうかを追跡します。たとえば、ログインページでは、ユーザーが正しく認証された場合にのみ、セッションでユーザー名を設定します。ログアウトページでクリアされます。その後、他のページで、ユーザー名がセッションに設定されているかどうかを確認できます。入力したパスワードを保存する必要はありません(推奨)。