2012-04-03 18 views
2

Ist diese Funktion gut für eine schnelle Login-Funktion mit nur einem Benutzer?PHP: Eine schnelle Login-Funktion?

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; 
} 

Es funktioniert aber, muss es verbessert werden?

+0

Eine mögliche Verbesserung: Sie können das Benutzerobjekt nur dann zur Sitzung hinzufügen, wenn die Anmeldung erfolgreich war. – bfavaretto

+0

Das wird definitiv funktionieren, aber es ist weniger als sicher und würde nur in einer Entwicklungs-/Testumgebung sinnvoll sein. Ich würde sowas nicht auf einen Produktionsserver stellen. – Joe

+1

@Joe: Warum würden Sie nicht, obwohl? Inwiefern ist es weniger als sicher? (Ich meine, Hashing und Salz wären eine große Verbesserung - aber es ist tatsächlich besser als eine Datenbank für ein einfaches Einzelbenutzersystem.) – Ryan

Antwort

1

Verwenden Sie die Sitzung, um zu verfolgen, ob der Benutzer angemeldet ist oder nicht. Legen Sie beispielsweise auf der Anmeldeseite nur dann den Benutzernamen in der Sitzung fest, wenn sich der Benutzer ordnungsgemäß authentifiziert. Logout-Seite löscht es. Dann können Ihre anderen Seiten überprüfen, ob der Benutzername in der Sitzung festgelegt ist oder nicht. Keine Notwendigkeit, eingegebenes Passwort zu speichern (empfehle gegen).

Verwandte Themen