SQL-Injection
Definition
SQL-Injection ist eine der verbreitetsten Angriffsmethoden auf Webanwendungen, bei der ein Angreifer bösartigen SQL-Code in Eingabefelder oder URL-Parameter einschleust, der vom Datenbankserver als legitimer SQL-Befehl ausgeführt wird. Ein erfolgreicher Angriff kann zur Offenlegung, Manipulation oder Löschung von Datenbankdaten führen. SQL-Injection steht seit Jahren auf der OWASP Top-10-Liste der kritischsten Web-Sicherheitsrisiken.
Erläuterung
SQL-Injection-Angriffe entstehen, wenn Benutzereingaben ungefiltert in SQL-Abfragen eingebaut werden: Ein Angreifer kann z. B. durch Eingabe von ' OR 1=1 -- in ein Login-Formular die Authentifizierung umgehen. Prepared Statements (auch Parameterized Queries) sind die wichtigste Gegenmaassnahme: Dabei wird der SQL-Code vorab kompiliert und Benutzereingaben als Parameter übergeben, die nie als SQL-Code interpretiert werden. ORMs (Object-Relational Mapper) wie SQLAlchemy, Hibernate oder Eloquent verwenden intern Prepared Statements und schützen dadurch automatisch vor SQL-Injection. Zusätzliche Schutzebenen sind: Eingabevalidierung und -sanitization, minimale Datenbankprivilegien (Principle of Least Privilege) und WAF-Regeln. Regelmäßige Sicherheits-Audits und automatisierte Scans mit Tools wie SQLMap helfen, verbliebene Schwachstellen zu entdecken.