EmpezarEmpieza gratis

Elegir el enfoque seguro para la entrada de usuario

Un pipeline acepta un nombre de producto desde la configuración del usuario para filtrar una consulta SQL. Tu colega propone dos enfoques:

Enfoque A usa params (renderizado con Jinja):

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

Enfoque B usa parameters (enlace a nivel de BD):

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

¿Qué enfoque es seguro frente a inyecciones cuando el nombre del producto proviene de una entrada de usuario no confiable?

Este ejercicio forma parte del curso

Creación de canalizaciones de datos con Airflow

Ver curso

ejercicio interactivo práctico

Convierte la teoría en práctica con uno de nuestros ejercicios interactivos

Empezar ejercicio