Zurück zur Übersicht

Begriff

SQL Injection (SQLi)

Security Database S2
2 Quellen 0 Lernpfade 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Stell dir vor, du füllst ein Formular aus: Name: Max Der Computer macht daraus einen Befehl: Suche User wo Name = 'Max' Jetzt gibt ein Hacker ein: Name: Max' LÖSCHE ALLE USER -- Der Computer macht daraus: Suche User wo Name = 'Max' LÖSCHE ALLE USER --' Und zack, die Datenbank ist leer. Der Hacker hat den "Daten-Teil" verlassen und ist in den "Befehls-Teil" eingebrochen.

Merksatz: Eine Sicherheitslücke, bei der Angreifer eigenen SQL-Code in eine Datenbankabfrage einschleusen, um unbefugt Daten zu lesen, zu ändern oder zu löschen.


Quick-Check

  1. Helfen Stored Procedures?
    Oft ja, weil sie Parameter nutzen. Aber wenn man innerhalb der Procedure wieder Strings zusammenbaut (EXEC('SELECT ' + @param)), ist man wieder verwundbar.
  2. ORM (Hibernate/Entity Framework)?
    Schützt standardmäßig zu 99% vor SQLi, weil es Prepared Statements nutzt. Aber Vorsicht bei "Raw SQL" Funktionen (session.createNativeQuery()).
  3. WAF?
    Eine WAF kann SQLi erkennen ("Blockiere alles mit UNION SELECT"). Aber sie ist kein Ersatz für sicheren Code (Bypass möglich).