(PHP) (SICHERHEIT) (HTML) - Datenbankabfragen sichern
moep
- datenbank
0 Aliaksandr0 Till0 moep
0 Götz
Hallo,
ich habe mir gerade überlegt, dass wenn ich ein Formular mache wo ein User seinen Username eingibt der da ja theoretisch MySQL-Datenbankabfragen durchführen kann!?
Also das ganze sieht so aus:
<?php
---cut---
mysql_query("SELECT * FROM user WHERE username = '$_POST[username]';");
---cut---
?>
Wenn der User "bla" als Usernamen nun aber folgendes eingibt:
"bla'; DROP TABLE user; SELECT pass FROM user WHERE username = 'andereruser"
Dann sieht mein Query ja so aus:
"SELECT * FROM user WHERE username = 'bla'; DROP TABLE user; SELECT pass FROM user WHERE username = 'andereruser';"
Das bedeutet jeder User kann meine Datenbank komplett löschen und beliebige Abfragen und Löschungen durchführen.
Wie kann man sich vor sowas schützen?
Wäre nett wenn mir jemand elfen könnte ;-)
GreeZ, moep.
Hallo,
Hi,
indem du nicht alle Zeichen, die ein Benutzer eingibt, ungeprüft und/oder ungewandelt übernimmst.
Gruß
Aliaksandr
Moin!
Das hilft dir sicherlich:
http://php.net/mysql-escape-string
rgds, Till
Das hilft dir sicherlich:
http://php.net/mysql-escape-string
danke, moep.
Hallo moep!
ich habe mir gerade überlegt, dass wenn ich ein Formular mache wo ein User seinen Username eingibt der da ja theoretisch MySQL-Datenbankabfragen durchführen kann!?
Wie kann man sich vor sowas schützen?
Unabhängig von SQL-Abfragen ist ganz allgemein dclp FAQ: 12.11. Prüfe importierte Parameter. Traue niemandem vielleicht noch interessant für Dich.
Dein konkretes Problem ist sozusagen ein spezielles Unterproblem davon.
MfG
Götz