- Published on
SQL 인젝션 대응책으로 가장 먼저 검색되는 것은 이스케이프 함수지만, 정답은 파라미터 바인딩입니다. 이스케이프는 값을 문자열 리터럴 안에서 안전하게 만들려는 시도이고, 바인딩은 값이 SQL 텍스트에 아예 들어가지 않게 만드는 구조적 분리이기 때문입니다. 이 글은 프리페어드 스테이트먼트가 서버에서 실제로 어떻게 파싱되고 실행되는지 로그로 확인하고, ORM을 쓰는데도 뚫리는 세 가지 지점과 ORDER BY나 테이블명처럼 애초에 바인딩할 수 없는 자리를 어떻게 처리하는지 파이썬과 자바스크립트 코드로 보여줍니다. LIKE 절 와일드카드, 저장된 값이 나중에 터지는 2차 인젝션, 같은 원리로 발생하는 NoSQL 연산자 인젝션, 그리고 최소 권한 계정과 정적 분석까지 다룹니다.