Kullanıcı girdisi için güvenli yaklaşımı seçmek
Bir veri yolu, bir SQL sorgusunu filtrelemek için kullanıcı yapılandırmasından bir ürün adı alıyor. İş arkadaşın iki yaklaşım öneriyor:
Yaklaşım A params (Jinja işleme) kullanır:
SQLExecuteQueryOperator(
sql="SELECT * FROM orders WHERE product = '{{ params.product }}'",
params={"product": user_input},
)
Yaklaşım B parameters (DB düzeyinde bağlama) kullanır:
SQLExecuteQueryOperator(
sql="SELECT * FROM orders WHERE product = $product",
parameters={"product": user_input},
)
Ürün adı güvenilmeyen kullanıcı girdisinden geliyorsa, hangi yaklaşım enjeksiyona karşı güvenlidir?
Bu egzersiz, kursun bir parçasıdır
Airflow ile Veri İş Hatları Oluşturma
Uygulamalı etkileşimli egzersiz
Teoriyi etkileşime dönüştürün, interaktif egzersizlerimizden biriyle
Egzersize başla