Hallo, Sven,
@mysql_query("SELECT benutzername, kw FROM benutzer WHERE benutzername = '{$_POST['benutzername']}'");
Abgesehen davon, dass der String womöglich am ökonomischten über 'SELECT benutzername, kw FROM benutzer WHERE benutzername = "'.$_POST['benutzername'].'"' notiert werden könnte ;-), habe ich eine Frage bezüglich der direkten Übernahme von externen Parametern.
Wie weit ist es, trotz der Klammerung mit Stringbegrenzern im Statement '...', möglich, dass der in das Statement eingefügte String einen Stringbegrenzer und danach MySQL-Befehle enthalten kann? Generell kann externen Parametern nur nach Prüfung getraut werden, daher mein deduktiver Schluss:
SELECT benutzername, kw FROM benutzer
WHERE benutzername='xyz' DROP benutzer
^^^^^^^^^^^^^^^^^^
$_REQUEST['whatever']
Mit den möglichen und zulässigen MySQL-Queries bin ich wenig vertraut, aber seitdem ich hier einige Threads über exakt dieses Problem gelesen habe, bin ich bei meinen Projekten komplett auf mysql_escape_string() http://www.php.net/manual/de/function.mysql-escape-string.php umgestiegen, da dort vorher jedwede Parameter direkt in den Query-String eingefügt wurden. Das hieß, dass man, soweit möglich, jede erdenklichen MySQL-Befehle »einschmuggeln« hätte können und damit im schlimmsten Falle die Datenbank hätte löschen können, sofern dessen Name bekannt ist, so mutmaße ich in meinem Unwissen - deshalb habe ich mir systematisch diese Paranoia angewöhnt.
Hältst du diese Methode für eine unnötige oder unzureichende Maßnahme oder hast du vergessen, darauf einzugehen...?
In </archiv/2002/12/32353/#m175267> empfiehlst du es selbst... Wahrscheinlich habe ich es auch von dir gelernt. ;) Folglich eher nur eine Unaufmerksamkeit deinerseits...?
... aber es mangelt am Datenbankverständnis noch erheblich.
Genau, das ist auch bei mir gewissermaßen der Fall, deshalb frage ich. :)
Grüße,
Mathias
Metakeywords: Sicherheit Datenbank Anfrage Überprüfung Validierung Benutzereingaben $_POST $_GET mysql_query
Moving, watching, working, sleeping, driving, walking, talking, smiling
Moving, watching, working, sleeping, driving, walking, talking, smiling
Moving, watching, working, sleeping, driving, walking, talking, smiling
Moving, watching, working, sleeping, ... (Air - People In The City)