Zum Inhalt springen
Glossar

SQL-Injection

Bei einer SQL-Injection schleust ein Angreifer über Eingabefelder oder URLs eigene Datenbankbefehle in eine Anwendung ein und liest oder verändert so fremde Daten.

Ausführliche Erklärung

Die Schwachstelle entsteht, wenn eine Anwendung Benutzereingaben ungeprüft in eine Datenbankabfrage einbaut. Aus einem Suchbegriff wird so Teil des Befehls.

Beispiel

Ein Login prüft Benutzername und Passwort mit einer Abfrage, die den eingegebenen Text direkt einbaut. Trägt ein Angreifer im Passwortfeld ' OR '1'='1 ein, ist die Bedingung immer wahr, und die Anmeldung gelingt ohne gültiges Passwort.

Folgen

  • Auslesen von Kundendaten, Passwort-Hashes und weiteren Tabellen
  • Umgehen von Anmeldungen
  • Verändern oder Löschen von Datensätzen

Schutz in der Entwicklung

  • Prepared Statements (parametrisierte Abfragen) statt zusammengesetzter Texte. Frameworks mit ORM nutzen sie in der Regel, solange keine Roh-Abfragen mit zusammengesetzten Texten gebaut werden
  • Eingaben prüfen und auf erwartete Formate begrenzen
  • Datenbankkonto der Anwendung mit minimalen Rechten betreiben
  • Regelmäßige Penetrationstests und eine WAF als zusätzliche Schicht

Softwareentwicklung

Ihr Vorhaben technisch einordnen

Im kostenlosen Erstgespräch von 30 Minuten schildern Sie Ihr Vorhaben. Wir sagen, welche Technik passt und wie wir Umsetzung und Betrieb angehen.

← Zurück zum Glossar