Mittel
SQL Injection & Gegenmaßnahmen
Wie Angriffe funktionieren und wie man sie mit Prepared Statements verhindert.
Warum Priorität „Mittel"? Gelegentlich Teil der Prüfung (40–59%). Verstehen, aber nicht überinvestieren.
Lernziele
- Angriffsmuster von SQL-Injection erkennen (Tautologie, UNION, Blind)
- Prepared Statements als Hauptgegenmaßnahme sicher anwenden
- Weitere Maßnahmen (Input-Validierung, Least Privilege) einordnen
Klassische Angriffsmuster
- Tautologie:
' OR '1'='1umgeht die WHERE-Bedingung. - UNION-based:
UNION SELECT ...hängt fremde Daten an das Ergebnis an. - Blind (zeitbasiert):
SLEEP(5)verrät Erfolg über die Antwortzeit. - Fehlerbasiert: provozierte DB-Fehler leaken Schemadetails.
Unsicher vs. sicher
javaUNSICHER – String-Konkatenation
String sql = "SELECT * FROM user WHERE name='" + name + "'";
stmt.executeQuery(sql);javaSICHER – Prepared Statement
PreparedStatement ps = con.prepareStatement(
"SELECT * FROM user WHERE name = ?");
ps.setString(1, name);
ps.executeQuery();Gegenmaßnahmen (Reihenfolge nach Wirksamkeit)
- Prepared Statements / Parameter-Binding – trennt SQL-Code und Daten.
- ORM (Hibernate, Entity Framework) nutzt intern Prepared Statements.
- Input-Validierung (Whitelist) – ergänzend, nicht ersetzend.
- Least Privilege für den DB-User der Anwendung.
- WAF (Web Application Firewall) als zusätzliche Schicht.
- Keine Fehlerdetails an den Client ausgeben.
Übungen
Eine AntwortWelche Maßnahme schützt am wirksamsten gegen SQL-Injection?
Eine AntwortWas bewirkt «' OR '1'='1» in einem Login-Query ohne Schutz?
Zum Weiterlernen

▶
YouTubeSQL Injection – API Sicherheit #5
Fokus auf SQL-Injection im API-Kontext mit Gegenmaßnahmen.

▶
YouTubeSecurity Shorts – Was ist eine SQL Injection und wie funktioniert dieser Angriff?
Kompaktes Security-Short mit klarem Angriffsbeispiel.
Externe Inhalte – AP2 Lernhub ist nicht für die Verfügbarkeit oder Korrektheit der verlinkten Seiten verantwortlich.