SQL 인젝션은 웹 애플리케이션이 사용자 입력을 SQL 쿼리에 직접 포함하는 취약점을 악용하여 데이터베이스를 해킹하는 공격 방법입니다.
쉽게 말해, 사용자가 입력하는 정보가 원래 의도하지 않고 SQL 코드 부분에 추가되어 실행되면서 데이터베이스를 조작하거나 정보를 유출하는 일이 발생합니다. 예를 들어, 로그인 페이지에서 아이디 입력란에 "admin'--"와 같은 문자열을 입력하면,
웹 애플리케이션은 이를 SQL 쿼리에 포함시켜 "SELECT * FROM users WHERE id = 'admin'--'" 와 같은 쿼리를 실행하게 됩니다. 이때 `--`는 SQL 문의 끝 표시어이므로, "WHERE id = 'admin'" 다음 부분을 무시하고 모든 사용자 정보를 가져오게 되는 것입니다.
SQL 인젝션은 데이터베이스에 직접 접근하여 데이터를 조작하거나 삭제할 수 있는 심각한 위협이며, 이를 방지하기 위해서는 입력값 검증과 에스caping 기법을 적극적으로 활용해야 합니다.
댓글 달기