SQL Injection
- 초보적인 해킹 방법, 간단하게 말하자면 sql 구문을 집어넣는것
- 악의적인 sql 구문을 실행하게 함으로써, 데이터베이스를 비정상적으로 조작하는 공격 기법
예를 들어, 로그인 폼의 아이디와 비밀번호 입력 필드에 다음과 같이 입력한다면
아이디: admin
비밀번호: ' OR '1'='1
실제로 실행되는 쿼리는 다음과 같다.
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';
여기서 '1'='1' 조건은 항상 참이므로, 로그인 시스템이 제대로 작성되지 않았다면 악의적인 사용자가 아이디와 비밀번호 없이도 로그인할 수 있게 된다.
SQL Injection 대응 방법
- Prepared Statements
- SQL 쿼리를 실행하기 전에 입력값을 placeholder(?)로 대체하여 쿼리를 준비한다. 이는 SQL Injection을 방지할 수 있는 가장 효과적인 방법 중 하나이다.
- 입력 값에 대한 검증 로직을 구현한다.
- 웹 방화벽을 사용한다.
'Back-End > SpringBoot' 카테고리의 다른 글
김영한 스프링 기본 이론 정리1 (0) | 2025.03.18 |
---|---|
pom.xml (0) | 2023.09.04 |
Model과 @ModelAttribute @RequestParam (0) | 2023.08.27 |
스프링 import & export 방법, import 에러 해결 (0) | 2023.08.20 |
@어노테이션 && MVC패턴 (0) | 2023.04.29 |