In meinem Programm nutze ich Lazarus 2.7.1, nahezu das aktuellste Snapshot und als Datenbankkomponente ZEOS. Nun hat ein User festgestellt dass relativ einfach sich einen SQL Code als Injection mit TDBEdit und der verbundenen Query ausführen lassen!



Das was in der TDBEdit eingegeben wird ist einfach über TDatasource und TZQuery in die Datenbank, ohne extra Code geschrieben. (MySQL)
hier sind ein paar Screenshots.
1) Wenn ein Bauteil angelegt wird, das ein \' im Namen hat, wird ein SQL-Syntaxfehler gemeldet. 2) Wenn man den Bauteilnamen mit einem SQL-Kommentar enden lässt, ist die Syntax der SQL-Statements wieder korrekt (typisches SQL-Injection-Szenario: http://xkcd.com/327/" onclick="window.open(this.href);return false;

Und die allerwichtigste Frage: Wie kann ich das beheben?
Grüße Markus