Parametrisierte Abfrage
Was ist Parametrisierte Abfrage?
Parametrisierte AbfrageDatenbankabfrage, deren Werte über Platzhalter getrennt vom SQL-Text übergeben werden, sodass Benutzereingaben die Abfragestruktur nicht verändern können.
Eine parametrisierte Abfrage (Prepared Statement) erlaubt es, ein SQL-Template mit Platzhaltern wie '?' oder ':id' vorzukompilieren und anschließend Werte zu binden. Die Datenbank-Engine behandelt die Parameter strikt als Daten — niemals als SQL-Syntax —, sodass auch Eingaben mit Anführungszeichen, Semikolons oder Kommentarmarkern die Abfragelogik nicht ändern können. Sie ist die kanonische Gegenmaßnahme gegen SQL-Injection (CWE-89) und wird von praktisch allen Datenbanktreibern und ORMs unterstützt. Parametrisierte Abfragen sollten Standard für jedes SQL mit unvertrauenswürdiger Eingabe sein, ergänzt durch minimal berechtigte DB-Konten, Allowlist-Validierung und sichere ORM-APIs für dynamische Identifier.
● Beispiele
- 01
'SELECT * FROM users WHERE id = ?' mit gebundenem Integer-Parameter statt String-Konkatenation der User-ID.
- 02
Benannte Parameter in PDO oder psycopg mit Werte-Dictionary statt String-Formatierung.
● Häufige Fragen
Was ist Parametrisierte Abfrage?
Datenbankabfrage, deren Werte über Platzhalter getrennt vom SQL-Text übergeben werden, sodass Benutzereingaben die Abfragestruktur nicht verändern können. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet Parametrisierte Abfrage?
Datenbankabfrage, deren Werte über Platzhalter getrennt vom SQL-Text übergeben werden, sodass Benutzereingaben die Abfragestruktur nicht verändern können.
Wie schützt man sich gegen Parametrisierte Abfrage?
Schutzmaßnahmen gegen Parametrisierte Abfrage kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Parametrisierte Abfrage?
Übliche alternative Bezeichnungen: Prepared Statement, Abfrage mit gebundenen Parametern.