# Was ist Structured Query Language (SQL) Injection?

> SQL-Injection ist eine Injection-Schwäche, bei der nicht vertrauenswürdige Daten die Struktur oder Bedeutung eines Structured-Query-Language-Befehls (SQL) verändern.

- Kanonische URL: https://yellowcube.eu/de/glossary/structured-query-language-injection/
- Herausgeber: Yellow Cube
- Sprache: de
- Kontakt: hello@yellowcube.eu

## Inhalt

Sie tritt auf, wenn eine Anwendung Datenbankanweisungen erzeugt, indem sie Befehlstext mit vom Angreifer beeinflussten Werten kombiniert, ohne eine zuverlässige Grenze zwischen Code und Daten zu wahren. Ein erfolgreicher Angriff kann Daten lesen oder ändern, Anwendungsprüfungen umgehen oder Datenbankfähigkeiten aufrufen, die dem Anwendungskonto zur Verfügung stehen.

Die primäre Abwehr besteht darin, die Abfragestruktur festzuhalten und Werte über parametrisierte Schnittstellen zu übergeben. Eingabevalidierung kann Geschäftserwartungen durchsetzen, ersetzt aber keine Parametrisierung; Datenbankberechtigungen sollten zudem die Folgen begrenzen, falls eine andere Kontrolle versagt.

### Wichtigste Punkte

- **Sichere Abfragekonstruktion:** Prepared Statements oder korrekt parametrisierte Datenbankschnittstellen über jeden Datenzugriffspfad hinweg verwenden, einschließlich Hintergrundjobs, administrativer Funktionen, importierter Daten und indirekter Eingaben.
- **Dynamische Abfrageelemente:** Parameter können häufig keine Tabellennamen, Spaltennamen oder Sortierrichtungen darstellen. Solche Auswahlmöglichkeiten auf eine feste Allowlist abbilden oder die Abfrage neu entwerfen, statt nicht vertrauenswürdigen Text einzufügen.
- **Folgenreduktion:** Anwendungsidentitäten nur die nötigen Datenbankprivilegien geben, wo praktikabel Rollen trennen, Verbindungs-Credentials schützen, unnötige Datenbankfähigkeiten vermeiden und abnormales Abfrageverhalten überwachen.
- **Wichtige Einschränkung:** Escaping, Stored Procedures, Object-Relational Mapping, Eingabevalidierung oder eine Web Application Firewall verhindern SQL-Injection nicht automatisch; die Sicherheit hängt davon ab, wie jede Abfrage letztlich konstruiert und ausgeführt wird.

### Verwandte Begriffe

[Anwendungssicherheit](<https://yellowcube.eu/de/glossary/application-security/>) · [Webanwendungssicherheit](<https://yellowcube.eu/de/glossary/web-application-security/>) · [Open Worldwide Application Security Project (OWASP) Top 10](<https://yellowcube.eu/de/glossary/open-worldwide-application-security-project-top-10/>) · [Static Application Security Testing (SAST)](<https://yellowcube.eu/de/glossary/static-application-security-testing/>) · [Dynamic Application Security Testing (DAST)](<https://yellowcube.eu/de/glossary/dynamic-application-security-testing/>)

### Quellen

[OWASP SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html) · [MITRE CWE-89: SQL Injection](https://cwe.mitre.org/data/definitions/89.html)

## Quellenangabe und Geltungsbereich

Diese Markdown-Darstellung wird aus denselben freigegebenen Inhalten wie die kanonische HTML-Seite erzeugt. Verwenden Sie beim Zitieren die kanonische URL.

