SQL Injection이란?

재폰지밥·2025년 8월 2일

공부

목록 보기
4/32
post-thumbnail

🗡️ SQL Injection이란? 쉽게 이해하는 웹 해킹 개념

웹 보안 취약점 중 XSS와 함께 가장 자주 언급되는 공격이 바로
SQL Injection (SQLi, SQL 인젝션) 입니다.

이번 글에서는 SQL Injection이 무엇인지,
어떻게 동작하는지, 그리고 이를 어떻게 방어할 수 있는지
쉽게 정리해보았습니다.


❓ SQL Injection이란?

웹 애플리케이션이 사용자 입력값을 제대로 검증하지 않아,
DB 쿼리가 조작되는 보안 취약점

  • 사용자가 입력한 값이 SQL 쿼리에 그대로 삽입되어
    원래 의도와 다르게 데이터베이스 명령이 실행됩니다.
  • 이를 통해 정보 탈취, 데이터 수정, 삭제까지 가능해집니다.

🔍 공격 흐름 예시

기본 쿼리 구조:

SELECT * FROM users WHERE username = '입력값' AND password = '입력값';

공격자가 입력한 값:

' OR 1=1 --

쿼리 전체가 이렇게 변함:

SELECT * FROM users WHERE username = '' OR 1=1 --' AND password = '';

결과:
조건이 항상 참이 되면서,
로그인 우회 또는 모든 사용자 정보 노출 가능


🛡 방어 방법

방법설명
입력값 검증숫자/문자 구분, 길이 제한 등
Prepared Statement쿼리와 값 분리하여 SQL 주입 차단
ORM 사용Django, SQLAlchemy 등 안전한 쿼리 생성
최소 권한 부여DB 계정에 불필요한 권한 제한

🧠 정리

  • SQL Injection은 쿼리 조작을 통한 공격
  • 로그인 우회, 데이터 유출이 가능하며 위험성이 큼
  • 방어는 입력 검증 + 안전한 쿼리 작성이 핵심

읽어주셔서 감사합니다 😊


profile
열심히 살기

0개의 댓글