CommencerCommencez gratuitement

Choisir l'approche sûre pour les saisies utilisateur

Un pipeline reçoit un nom de produit depuis la configuration utilisateur pour filtrer une requête SQL. Votre collègue propose deux approches :

Approche A utilise params (rendu Jinja) :

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

Approche B utilise parameters (liaison côté base de données) :

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

Laquelle de ces approches est à l'abri des injections lorsque le nom de produit provient d'une source non fiable ?

Cet exercice fait partie du cours

<cours>Créer des pipelines de données avec Airflow</cours>
Voir le cours

Exercice interactif pratique

Transformez la théorie en action avec l’un de nos exercices interactifs

Commencer l’exercice