Ok danke für die Hinweise und Ratschläge und eure Mühen mit mir
Ich werd mich informieren wie ich Sicherheitslücken schließe
Danke danke
Ok danke für die Hinweise und Ratschläge und eure Mühen mit mir
Ich werd mich informieren wie ich Sicherheitslücken schließe
Danke danke
Es gibt keine doppelten Selects oder Updates Sind alles für verschiedene Spalten die ich einzelnd brauche.
Und was ist das:
$sql = mysql_query("SELECT * FROM `member` WHERE `mail`='$member' AND `password`='$pw' AND `status`='ok' LIMIT 1", $db);
$found = mysql_num_rows($sql);
$id = mysql_query("SELECT `id` FROM `member` WHERE `mail`='$member' AND `password`='$pw' AND `status`='ok'", $db);
Mal ganz zu schweigen davon, dass ein "Select *" um die Anzahl herauszubekommen, Quatsch ist und wieviele Treffer erwartest du bei der Bedingung? Mehr als einen darf es ja wohl nie geben.
Und hier hast du zwei Updates:
$update = mysql_query("UPDATE `member` SET `lastlogin`=NOW() WHERE `mail`='$member' AND `password`='$pw'", $db);
$onstatus = mysql_query("UPDATE `member` SET `onoff`=1 WHERE `mail`='$member' AND `password`='$pw'", $db);
Sowohl die Selects als auch die Updates lassen sich mit je einer Abfrage erschlagen!
Unterm Strich ist das alles sehr unsauber programmiert.
Das wär noch interessanter Lesestoff:
http://daemonkeeper.net/87/sql-injection-kurz-erklaert/
Schau dir ausserdem die verschiedenen SQL-Befehle noch mal an, es gibt nämlich noch andere Funktionen ausser INSERT, SELECT, UPDATE und DELETE. Versuche diese zu verwenden wo es möglich ist. In deinem Beispiel könntest du z.B. COUNT() verwenden, um die Anzahl Reihen zu erhalten. Es ist allgemein hilfreich, von Anfang an zu versuchen, performanten Code zu schreiben, dann musst du dich später nicht darum kümmern.