시작하기무료로 시작하기

사용자 입력에 안전한 방법 선택하기

파이프라인이 SQL 쿼리를 필터링하기 위해 사용자 설정에서 제품 이름을 받는다고 가정해 봅시다. 동료가 두 가지 방법을 제안했습니다.

방법 Aparams 사용 (Jinja 렌더링):

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

방법 Bparameters 사용 (DB 수준 바인딩):

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

신뢰할 수 없는 사용자 입력에서 제품 이름이 들어올 때, 인젝션 공격에 안전한 방법은 무엇일까요?

이 연습은 강의의 일부입니다

Airflow로 데이터 파이프라인 구축하기

강의 보기

실습형 인터랙티브 연습문제

이론을 실습으로 바꾸는 인터랙티브 연습 중 하나를 만나보세요

연습 시작