BerufsDeutsch

Kurz erklärt: Was ist SQL-Injection?

  • B1-B2
  • ca. 1 Min. Lesezeit
  • IT-Sicherheitsfachkraft / Cybersecurity-Analyst/-in
  • kostenlos

Viele Webanwendungen speichern ihre Daten in einer Datenbank. Wenn ein Nutzer etwas in ein Formular eingibt, zum Beispiel einen Suchbegriff, baut die Anwendung daraus einen SQL-Befehl. Gefährlich wird es, wenn die Eingabe einfach an den Befehl angehängt wird. Dann kann ein Angreifer statt eines Suchbegriffs eigene SQL-Befehle in die Abfrage einschleusen. Im schlimmsten Fall liest er alle Kundendaten aus oder löscht ganze Tabellen. Diesen Angriff nennt man SQL-Injection. Der wichtigste Schutz sind parametrisierte Abfragen: Dabei werden der Befehl und die Eingabe getrennt an die Datenbank übergeben, und die Eingabe wird immer nur als Wert behandelt. Zusätzlich sollte jede Eingabe auf dem Server validiert werden. Eine Prüfung nur im Browser genügt nicht, weil man sie leicht umgehen kann.

Glossar

einschleusen
etwas heimlich in ein System bringen, zum Beispiel fremde Befehle„Dann kann ein Angreifer statt eines Suchbegriffs eigene SQL-Befehle in die Abfrage einschleusen.“
die parametrisierte Abfrage
eine Datenbankabfrage, bei der die Eingabe des Nutzers getrennt vom SQL-Befehl übergeben wird„Der wichtigste Schutz sind parametrisierte Abfragen: Dabei werden der Befehl und die Eingabe getrennt an die Datenbank übergeben, und die Eingabe wird immer nur als Wert behandelt.“
validieren
prüfen, ob Daten korrekt sind und den erlaubten Regeln entsprechen„Zusätzlich sollte jede Eingabe auf dem Server validiert werden.“
umgehen
eine Regel oder Sperre so überwinden, dass sie keine Wirkung hat„Eine Prüfung nur im Browser genügt nicht, weil man sie leicht umgehen kann.“

Verständnisfragen

  1. Wann wird eine Eingabe gefährlich?

  2. Was passiert bei einer parametrisierten Abfrage?

  3. Warum genügt eine Prüfung im Browser nicht?