본문 바로가기
Security#Security#Database조회 33

SQL Injection란?

정의

사용자 입력을 조작해 의도하지 않은 SQL을 실행시키는 공격. Prepared Statement로 방어.

다른 표현SQL 인젝션SQLi

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도 보조 수단

📘 관련 기술노트

전체 보기 →

🔗 함께 보면 좋은 용어

Security 전체 →