CommencezCommencez gratuitement

Choisir l'approche sécuritaire pour les entrées utilisateur

Un pipeline accepte un nom de produit à partir d'une 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 au niveau de la BD) :

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

Laquelle est sécuritaire contre l'injection lorsque le nom du produit provient d'une source non fiable?

Cette activité fait partie du cours

Créer des pipelines de données avec Airflow

Voir le cours

Exercice interactif pratique

Passez de la théorie à l’action grâce à l’un de nos exercices interactifs

Commencer l’exercice