echo $begrüßung;
Prämisse: magic_quotes_gpc = ON !
$user = trim($_POST[username]);
$pass = trim($_POST[password]);$sql_user =mysql_query("SELECT ID FROM User WHERE (Nickname like '$user') AND (Password = '$pass')");
haltet Ihr diese Datenbankanfrage für sicher?
Ja, sie ist sicher ... verbesserungswürdig.
Usernamen mit like zu vergleichen ist nicht besonders clever. Was ist, wenn jemand % eingibt? Dann passt das auf alle User. Irgendwer wird dann schon noch ein unsicheres Passwort haben ...
Ich denke nicht, dass es sinnvoll ist, die Auswirkungen von Vertippern automatisch lindern zu wollen, wenn sich jemand vertippt hat er halt Pech gehabt.
Ich weiss, dass es auch "mysql_real_escape_string" gibt, jedoch würde ich mir gerne die Tatsache zu Nutze machen, dass bei mir die magic_quotes auf "ON" gestellt sind. Ansonsten müsste ich jedesmal stripslashes(); verwenden, was die magic_quotes auf (ON) ja völlig überflüssig macht.
Magic Quotes sind in der Tat ein überflüssiges Feature. Pläne sehen vor, dass diese in PHP 6 nicht mehr enthalten sein werden.
Zum einen ist nicht auf jedem System sichergestellt, dass sie eingeschaltet sind. Zum anderen stören sie, wenn Daten gar nicht oder nicht direkt in die Datenbank geschrieben werden sollen, beispielsweise wenn Formulardaten in einem Affenformular mehrere Runden drehen, bevor sie als o.k. befunden werden. Außerdem sind die von Magic-Quotes maskierten Zeichen sehr allgemein gehalten und damit nicht genau auf die Belange der verwendeten Datenbank zugeschnitten.
"Jedesmal stripslashes() verwenden" fasse ich so auf, dass die stripslashes() verteilt in deinem Script herumliegen. Verwende diese Funktion einmalig am Scriptanfang und die stripslashes()-Probleme sind erledigt.
echo "$verabschiedung $name";