패스잇
보안 · 기초

SQL Injection 취약점은 무엇이며, 어떻게 발생하고 어떤 피해를 줄 수 있는지 간단히 설명해주세요.

힌트 · 사용자 입력이 SQL 쿼리에 삽입되어 데이터베이스를 조작하는 공격입니다. 데이터 유출, 변조, 삭제 등의 피해를 유발할 수 있습니다.

SQL InjectionPrepared Statement파라미터 바인딩데이터 유출권한 상승

모범답안

SQL Injection은 웹 애플리케이션 보안 취약점 중 하나로, 사용자로부터 받은 입력값을 제대로 검증하지 않고 SQL 쿼리에 직접 삽입할 때 발생합니다. 예를 들어, 로그인 폼에서 사용자 이름 대신 악성 SQL 코드를 입력하면, 데이터베이스가 이를 명령어로 인식하여 인증을 우회하거나 데이터를 탈취할 수 있습니다.

이 공격이 성공하면 데이터베이스에 저장된 개인 정보, 계정 정보 등 중요한 데이터가 유출, 변조, 심지어 삭제될 수 있습니다. 또한, 공격자가 데이터베이스 관리자 권한을 획득하여 시스템 전체를 장악하는 심각한 피해를 초래할 수도 있습니다.

SQL Injection을 방지하기 위해서는 Prepared Statement와 파라미터 바인딩을 사용하여 사용자 입력값을 SQL 쿼리에서 데이터로 취급하도록 해야 합니다. 입력값 검증 및 필터링도 중요하지만, Prepared Statement를 사용하는 것이 가장 효과적인 방어 방법입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 OWASP / 취약점 면접 질문

← OWASP / 취약점 면접 질문 전체 보기