SQL Injection erklärt (und wie man sie verhindert) — 2026
7. Juni 2001 · von Pentevo
SQL Injection (SQLi) ist eine der ältesten und schädlichsten Web-Schwachstellen – und sie taucht weiterhin in den OWASP Top 10 als Teil von „Injection“ auf. Dies ist ein verteidigungsorientierter Überblick: was sie ist, warum sie entsteht und wie man sie endgültig stoppt.
Die Kernidee
Web-Apps bauen Datenbankabfragen aus Nutzereingaben. Fließt diese Eingabe direkt als Code in die Abfrage ein, statt als Daten behandelt zu werden, kann ein Angreifer verändern, was die Abfrage tut.
Konzeptionell könnte eine Login-Prüfung Benutzername und Passwort vergleichen. Ist die Eingabe nicht von der Abfragestruktur getrennt, kann präparierte Eingabe die Logik der Abfrage verändern – etwa eine Bedingung in eine immer wahre umwandeln und so die Prüfung umgehen. Das klassische Lehrbeispiel ist eine Eingabe wie ' OR '1'='1, die zeigt, wie nicht escapete Eingabe die Bedeutung einer Abfrage verändert.
Die Erkenntnis ist nicht der Payload – es ist die Grundursache: nicht vertrauenswürdige Eingaben, die als Code interpretiert werden.
Warum sie so gefährlich ist
Eine erfolgreiche SQLi kann einem Angreifer erlauben, ganze Datenbanken auszulesen (Zugangsdaten, personenbezogene Daten), Datensätze zu ändern oder zu löschen und manchmal tiefer in ein System vorzudringen. Viele große Datenlecks lassen sich darauf zurückführen.
Haupttypen
- In-Band – Ergebnisse kommen direkt in der Antwort der App zurück (am leichtesten zu erkennen).
- Blind – die App zeigt keine Ergebnisse, also schließen Angreifer aus Verhalten oder Timing auf die Antworten.
- Out-of-Band – Daten werden über einen separaten Kanal exfiltriert.
Wie man sie verhindert (der Teil, der zählt)
- Parametrisierte Abfragen / Prepared Statements. Das ist der Fix Nr. 1 – die Datenbank behandelt Eingaben strikt als Daten, nie als Code. Nutzen Sie sie überall.
- ORMs korrekt eingesetzt – die meisten modernen Frameworks parametrisieren für Sie; umgehen Sie das nicht mit roh zusammengebauten String-Abfragen.
- Eingabevalidierung – erwartete Formate per Allow-List zulassen (aber Validierung ist eine Ergänzung, kein Ersatz für Parametrisierung).
- Least Privilege – das Datenbankkonto der App sollte nur den Zugriff haben, den es braucht.
- WAF – eine nützliche zusätzliche Schicht, aber niemals Ihre einzige Verteidigung.
Wie sie gefunden wird
Tester (und KI-gestützte Tools) sondieren Eingaben, um zu sehen, ob die App Daten von Code trennt – sicher, in autorisierten Scopes. Tools wie Burp Suite helfen, Eingaben zu erfassen und zu testen. Das Ziel ist immer, zu finden und zu beheben, bevor es ein Angreifer tut – siehe Was ist Penetrationstesting?.
Lernen Sie die Sicherheit von Webanwendungen richtig, kostenlos, in der Pentevo Academy.
Häufig gestellte Fragen
Was ist SQL Injection?
SQL Injection (SQLi) ist eine Web-Schwachstelle, bei der von Nutzern stammende Eingaben direkt als Code in eine Datenbankabfrage einfließen, statt als Daten behandelt zu werden. Dadurch kann ein Angreifer verändern, was die Abfrage tut – etwa eine Bedingung in eine immer wahre umwandeln und so eine Prüfung umgehen. Die Grundursache ist, dass nicht vertrauenswürdige Eingaben als Code interpretiert werden.
Wie verhindert man SQL Injection?
Der wichtigste Fix sind parametrisierte Abfragen bzw. Prepared Statements: Die Datenbank behandelt Eingaben strikt als Daten, nie als Code. Nutzen Sie sie überall. Ergänzen Sie sie durch korrekt eingesetzte ORMs, Eingabevalidierung per Allow-List, das Least-Privilege-Prinzip für das Datenbankkonto und eine WAF als zusätzliche Schicht – aber nie als einzige Verteidigung.
Warum ist SQL Injection so gefährlich?
Eine erfolgreiche SQLi kann einem Angreifer erlauben, ganze Datenbanken auszulesen (Zugangsdaten, personenbezogene Daten), Datensätze zu ändern oder zu löschen und manchmal tiefer in ein System vorzudringen. Viele große Datenlecks lassen sich darauf zurückführen.
Welche Arten von SQL Injection gibt es?
Es gibt drei Haupttypen. Bei In-Band-SQLi kommen die Ergebnisse direkt in der Antwort der App zurück – am leichtesten zu erkennen. Bei Blind-SQLi zeigt die App keine Ergebnisse, sodass Angreifer aus Verhalten oder Timing schließen. Bei Out-of-Band-SQLi werden Daten über einen separaten Kanal exfiltriert.
Weiterführende Artikel
VPN erklärt: Was es leistet (und was nicht) — 2026
Wie ein VPN wirklich funktioniert, wovor es schützt, wovor nicht und wie man eines auswählt – ohne Marketing-Hype.
FundamentalsWas ist ein Penetrationstest? Ein Leitfaden für Einsteiger (2026)
Ein verständlicher Leitfaden zum Penetrationstest: was er ist, die fünf Phasen, die wichtigsten Arten und wie er sich vom Schwachstellenscan unterscheidet.
FundamentalsZero-Day-Schwachstellen erklärt (2026)
Was eine Zero-Day-Schwachstelle ist, warum sie so gefährlich ist, wie Zero-Day-Exploits eingesetzt werden und was Verteidiger gegen das Unbekannte tun können.
FundamentalsWas ist ein CVE? Schwachstellen-IDs verstehen (2026)
Was CVE bedeutet, wie die Nummerierung funktioniert, wie CVSS-Schweregrad und EPSS-Werte bei der Priorisierung helfen und wie Sie die relevanten CVEs verfolgen.
Praktisch anwenden
Die Pentevo Academy macht aus diesen Konzepten geführte Lektionen, Videos und Quizze — kostenlos.
Kostenlos lernen