문제
다음 중 NoSQL Injection 공격의 특징으로 가장 옳지 않은 것은?
① MongoDB에서 JavaScript 함수나 연산자를 악용하여 인증을 우회할 수 있다 ② 전통적인 SQL 구문 대신 JSON 형태의 쿼리 조작을 통해 수행된다 ③ Prepared Statement를 사용하면 모든 NoSQL Injection을 완벽하게 방어할 수 있다 ④ 스키마가 없는 NoSQL의 특성상 예상치 못한 데이터 구조 접근이 가능하다
정답
3번
해설
③번이 틀렸다. Prepared Statement는 SQL 데이터베이스에 효과적이지만, NoSQL은 다양한 쿼리 언어와 API를 사용하므로 Prepared Statement만으로는 완벽한 방어가 어렵다. NoSQL Injection 방어를 위해서는 입력값 검증, 화이트리스트 필터링, 적절한 권한 설정 등 다층적 접근이 필요하다. ①②④번은 NoSQL Injection의 올바른 특징들이다.