Aan de slagBegin gratis

De veilige aanpak kiezen voor gebruikersinvoer

Een pipeline accepteert een productnaam uit de gebruikersconfiguratie om een SQL-query te filteren. Je collega stelt twee aanpakken voor:

Aanpak A gebruikt params (Jinja-rendering):

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

Aanpak B gebruikt parameters (binding op DB-niveau):

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

Welke aanpak is veilig tegen injectie als de productnaam afkomstig is van onbetrouwbare gebruikersinvoer?

Deze oefening maakt deel uit van de cursus

Data-pijplijnen bouwen met Airflow

Bekijk cursus

Interactieve oefening met praktijkervaring

Zet theorie om in actie met een van onze interactieve oefeningen

Begin oefening