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)