EMZETT.
Login

SQL-Injection

Kurz: Bei einer SQL-Injection schmuggelt ein Angreifer eigene Datenbankbefehle in ein Eingabefeld, weil die Anwendung Eingaben ungeprüft in eine Abfrage einbaut.

Genauer: Ein Login, das die Abfrage als Text zusammensetzt (... WHERE name = ' + Eingabe + '), lässt sich mit der Eingabe ' OR '1'='1 austricksen. Das Ergebnis reicht vom Umgehen der Anmeldung bis zum Auslesen oder Löschen der ganzen Datenbank.

Im Detail

  • Schutz: Parametrisierte Abfragen (Prepared Statements). Eingaben werden getrennt vom Befehl übergeben und nie als Code gelesen.
  • ORM: Moderne Frameworks nutzen standardmäßig Parameter, solange man keine Rohtexte zusammensetzt.
  • Weitere Maßnahmen: Minimale Datenbankrechte, Eingaben validieren, Fehlermeldungen nicht ausgeben.
  • Test: Sicherheitsscanner und Code-Review.

Siehe auch: OWASP Top 10, XSS (Cross-Site Scripting)