Hopsel: nach Login gültigen Account prüfen

Beitrag lesen

Hi kEv*!

Was kann ich besser machen, oder ggfs. sicherer?

Ich finde, das ist soweit ganz okay.

Nur ein paar Verbesserungswürdige Punkte:
1. Wenn du statt mysql_fetch_object mysql_fetch_assoc nutzt und
2. im SQL-Statement eine explizite Projektion hast (also kein *), dann kannst du
3. deine Sessionvariablen mir foreach($data as $key=>$value) zusammenstellen. Wenn sich an den benötigten Daten mal was ändert, brauchst du nur das SELECT-Statement ändern.

4. Deine Fehlerbehandlung erlaubt dir nicht, mehrere Fehler zu behandeln. Das könnte evtl. später von Nachteil sein. Auch eine Gewichtung bekommst du so nicht. Es ist ein Unterschied, ob ich meinen Benutzernamen oder mein Passwort falsch eingegeben habe oder ob mein Account gesperrt ist. Mit hübschen Icons und entsprechenden CSS-Klassen kannst du solche Fehlermeldungen etwas aufbohren.

5. ein mit md5 verschlüsseltes Passwort solltest du vorher nicht mit mysql_real_escape_string() behandeln. Es kann vorkommen, dass du dann einen anderen Hash in die Datenbank speicherst, als den vom Originalpasswort generierten Hash.

6. Wenn du ein neues Projekt planst, solltest du kein Tabellendesign mehr nutzen. Es wird die viel Arbeit ersparen.

7. Vergleiche in deiner if-Abfrage if (isset($_SESSION['error']) && $_SESSION['error']) besser auf die Länge des Strings. Ich weiß nicht, wie sich der Compiler verhält, wenn z. B. eine 0 am Anfang des String stehen würde.

Das sind alles nur Vorschläge, die dir aber für künftige Projekte vielleicht helfen.

MfG H☼psel

--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)