보안 수업 기반
가장 잘 이해하고 있는 취약점은 SQL Injection입니다. 수업에서 직접 실습하면서 입력값이 쿼리로 그대로 삽입될 때 어떤 일이 발생하는지를 확인했습니다. 공격자가 ' OR 1=1 -- 같은 패턴으로 인증을 우회하거나 전체 테이블을 덤프할 수 있다는 점이 인상 깊었습니다. 대응 방법으로는 Prepared Statement 사용과 입력값 검증이 핵심이고, ORM을 사용하더라도 Raw Query를 직접 쓰는 부분은 별도로 점검해야 합니다. 이 취약점이 여전히 Top 10에 있는 이유는 개발자가 빠르게 구현할 때 실수하기 쉬운 패턴이기 때문이라고 생각합니다.
SQL Injection이 오래된 취약점임에도 여전히 발생하는 이유를 이해하고, 개발 과정에서 이 패턴이 나타나지 않도록 적극적으로 검토하겠습니다.