Tach!
Zudem, wenn ich an dein Skript eine Anrede schicke die wie folgt aussieht, hast du Probleme (ohne die Anführungszeichen am Anfang und Ende): "', '', '', '', ''); DROP TABLE user_info;"
hm, du meinst wenn irgendein bösewicht mein htmlformular umgeht und die parameter direkt übergibt?
Es ist nicht nur eine Frage der Bösewichte, die diese Lücke gezielt ausnutzen können. Deine Anwendung ist einfach kaputt, wenn man mit bestimmten Eingabewerten SQL-Statements mit Syntaxfehlern erzeugen kann.
bist du dir sicher das man so einen drop befehl da reinmorksen kann? das würde ja heißen dass das db.run(param) als param zwei sql anweidungen ausführen kann oder?
Zumindest für den obigen Fall ist das irrelevant, ob sowas geht oder nicht, kaputt ist kaputt. Aber ja, die meisten DBMS lassen das ohne weiteres zu, dass man mehrere Statements gleichzeitig abschicken kann. MySQL ist das einzige mir bekannte System, für das man die Multi-Query-Funktionalität explizit anfordern muss. Bei dem geht also eine SQL-Injection mit zwei Statements im Normalfall nicht durch. Es gibt aber noch genügend Möglichkeiten, sich mit nur einem Statement ungewollte Funktionalität zu verschaffen.
also, so wie der server aktuell geschrieben ist. was würde da passieren wenn user A und user B zeitgleich eine registrierung vornehmen? würde der rechner dann beide datenbankeinträge nacheinander vornehmen oder würden beide user eine fehlermeldung bekommen? wie mach ich das vernünftig?
Indem du die Dokumentation des verwendeten Systems (sprich SQLite) studierst.
dedlfix.