SQL 삽입(SQL Injection)
로그인 창 같은 입력값에 악의적인 SQL 구문을 끼워 넣어, 개발자가 의도하지 않은 데이터베이스 명령이 실행되게 만드는 보안 취약점으로, 정보 유출이나 데이터 훼손으로 이어질 수 있습니다.
한눈에 보는 정의
SQL 삽입(SQL Injection)은 로그인 창 같은 사용자 입력값에 악의적인 SQL(Structured Query Language) (SQL) 구문을 끼워 넣어, 개발자가 의도하지 않은 데이터베이스 명령이 실행되게 만드는 보안 취약점입니다.
자세히 알아보기
- 예문: "아이디 입력란에
' OR '1'='1을 넣으면 조건이 항상 참이 되어 로그인이 우회될 수 있는 것이 SQL 삽입의 대표적인 예다." - 사용자 입력값을 검증 없이 그대로 SQL 문에 이어붙이면, 공격자가 원하는 조건이나 명령을 SQL 문에 끼워 넣어 데이터베이스를 조작할 수 있게 됩니다.
- 성공하면 로그인 우회는 물론, 저장된 데이터를 몰래 조회하거나 DML(데이터 조작어) (데이터 조작어)을 통해 데이터를 임의로 수정·삭제하는 등 심각한 피해로 이어질 수 있습니다.
- 사용자 입력값과 SQL 명령을 분리해서 처리하는 '준비된 구문(Prepared Statement)'을 사용하는 것이 가장 확실한 예방 방법으로 꼽힙니다.