SQL Injection이란?
사용자 입력이 SQL 쿼리에 그대로 연결되는 코드에서 공격자가 SQL 문법을 끼워 넣어 DB를 조작하는 공격이다.
취약한 코드 예
// ❌ 위험
const q = "SELECT * FROM users WHERE name = '" + input + "'";
// input이 "admin' OR 1=1 --" 이면 전체 조회
사용자 입력을 조작해 의도하지 않은 SQL을 실행시키는 공격. Prepared Statement로 방어.
사용자 입력이 SQL 쿼리에 그대로 연결되는 코드에서 공격자가 SQL 문법을 끼워 넣어 DB를 조작하는 공격이다.
// ❌ 위험
const q = "SELECT * FROM users WHERE name = '" + input + "'";
// input이 "admin' OR 1=1 --" 이면 전체 조회