SQL Injection이란?

사용자 입력이 SQL 쿼리에 그대로 연결되는 코드에서 공격자가 SQL 문법을 끼워 넣어 DB를 조작하는 공격이다.

취약한 코드 예

// ❌ 위험
const q = "SELECT * FROM users WHERE name = '" + input + "'";
// input이 "admin' OR 1=1 --" 이면 전체 조회

방어

  • Prepared Statement / Parameterized Query 사용
  • ORM(Prisma, Drizzle 등) 쓰면 기본적으로 안전
  • 최소 권한 원칙 — 앱 DB 유저에게 DROP 권한 주지 말 것
  • WAF도 보조 수단