
설명:
SQL Injection은 웹 애플리케이션이 사용자 입력을 적절히 검증하지 않을 때 발생하는 보안 취약점입니다.
공격자가 SQL 쿼리를 조작하여 데이터베이스에서 민감한 정보를 조회, 변경, 삭제하거나, 심지어 시스템 명령을 실행할 수도 있습니다.
SELECT * FROM users WHERE username = 'admin' AND password = 'password123';
위 쿼리에서 사용자가 password' OR '1'='1 같은 값을 입력하면 다음과 같이 변형됩니다.
SELECT * FROM users WHERE username = 'admin' AND password = 'password' OR '1'='1';
이 경우, 1=1은 항상 참이므로 공격자는 관리자로 로그인할 수 있습니다.
대응 방법:
✅ Prepared Statements (미리 준비된 SQL문)
✅ ORM (객체-관계 매핑) 사용
✅ 입력 값 검증
sql injection을 막을려면 어떻게 해야하나요?