Vinzenz Mai: wo ist der fehler

Beitrag lesen

Hallo,

(PS: Keine verbesserungsvorschläge, ich behalte dieses sowieso )``

willst Du jetzt was wissen oder nicht?

[code lang=sql]$benutzer = $_POST[benutzer];
$passwort = $_POST[passwort];

a) überflüssiges Umkopieren
b) fehlerhafte Syntax beim Zugriff auf Array-Elemente

$abfrage = "SELECT Benutzer, Passwort FROM login WHERE Benutzer LIKE '$benutzer'";

c) anfällig für SQL-Injection, weil kontextgerechte Behandlung missachtet wird.

$ergebnis = mysql_query($abfrage);

d) fehlende Fehlerbehandlung. mysql_query() kann fehlschlagen.
e) mysql_*-Funktionen sind veraltet und sollten in neuen Projekten nicht
   mehr verwendet werden.

$row = mysql_fetch_object($ergebnis);

f) Gibt es überhaupt einen Datensatz?

if($row->passwort == $passwort || $row->benutzer == $benutzer)

g) Passworte speichrt man nicht im Klartext. Speichere gesalzene Hashes und
   nutze dies bereits in der WHERE-Klausel Deiner Abfrage.

h) Benutze exaktere Vergleichsoperatoren.

{
    echo "Login erfolgreich. <br> <a href="geheim.php">Geschützer Bereich</a>";

i) Wer die URI kennt, kommt an das, was geschützt werden soll.
   Der Schutz ist also nichtexistent (Security by Obscurity doesn't work).

Freundliche Grüße

Vinzenz