보안
SQL Injection
다른 이름: SQL 인젝션
정의
SQL 인젝션. 사용자 입력을 검증 없이 SQL 쿼리에 직접 삽입할 때 발생하는 보안 취약점. 공격자가 임의의 SQL을 실행하여 데이터 유출, 변조, 삭제 가능. Prepared Statement나 ORM으로 방어
상세 설명
실무 활용
- 로그인 우회: ' OR 1=1 --
- 데이터 유출: UNION SELECT password FROM users
- 데이터 삭제: '; DROP TABLE users; --
장점
- (공격자 관점) 간단한 공격
- (공격자 관점) 광범위한 피해
단점 및 제약
- (방어자 관점) Prepared Statement로 완벽 차단 가능
- (방어자 관점) ORM 사용 시 자동 방어