LoslegenKostenlos starten

Die sichere Methode für Benutzereingaben wählen

Eine Pipeline übernimmt einen Produktnamen aus der Nutzerkonfiguration, um eine SQL-Abfrage zu filtern. Deine Kollegin bzw. dein Kollege schlägt zwei Ansätze vor:

Ansatz A verwendet params (Jinja-Rendering):

SQLExecuteQueryOperator(
    sql="SELECT * FROM orders WHERE product = '{{ params.product }}'",
    params={"product": user_input},
)

Ansatz B verwendet parameters (Binding auf DB-Ebene):

SQLExecuteQueryOperator(
    sql="SELECT * FROM orders WHERE product = $product",
    parameters={"product": user_input},
)

Welcher Ansatz ist injection-sicher, wenn der Produktname aus nicht vertrauenswürdiger Benutzereingabe stammt?

Diese Übung ist Teil des Kurses

<Kurs>Data-Pipelines mit Airflow aufbauen</Kurs>
Kurs ansehen

Interaktive praktische Übung

Verwandle Theorie mit einer unserer interaktiven Übungen in die Praxis

Übung starten