보안
보통
코딩
SQL 인젝션 방어
취약한 코드를 SQL 인젝션으로부터 안전하게 수정
25분
80점
#3694
문제 설명
아래의 취약한 코드를 SQL 인젝션 공격으로부터 안전하게 수정하세요.
취약한 코드
def get_user(username):
query = f"SELECT * FROM users WHERE username = '{username}'"
return db.execute(query)
def search_products(name, min_price, max_price):
query = f"SELECT * FROM products WHERE name LIKE '%{name}%'"
if min_price:
query += f" AND price >= {min_price}"
if max_price:
query += f" AND price <= {max_price}"
return db.execute(query)
요구사항
- Prepared Statement / Parameterized Query 사용
- 입력 값 검증 추가
- 에러 메시지에서 민감한 정보 노출 방지
- 최소 권한 원칙 적용 고려
평가 기준
- SQL 인젝션 완전 차단
- 코드 가독성 유지
- 기능 동일성 보장
실행 버튼을 눌러 코드를 실행하세요.