부적절한 입력값 검증
외부에서 전달된 입력값이 예상한 자료형, 길이, 허용 문자, 값의 범위 및 의미적 유효성에 해당하는지 제대로 검증하지 않는 경우 발생할 수 있는 취약점입니다. 입력값으로써 검증할 대상은 사용자 입력뿐 아니라 API 요청, 파일, HTTP 헤더, 외부 시스템 데이터 등도 포함됩니다.
공격자는 비정상적인 데이터를 전달하여 애플리케이션의 예상하지 못한 동작을 유도하여 메모리 오류나 서비스 거부와 같은 문제로 이어질 수도 있습니다. 또한, SQL 삽입, XSS, OS 명령어 삽입, 경로 조작 등 여러 취약점의 원인이 될 수도 있습니다.
가능한 경우 허용 목록(Allowlist) 방식으로 허용 가능한 입력을 정의하는 것이 좋습니다. 클라이언트 측 검증만으로는 충분하지 않으며 서버 측에서 다시 검증해야 합니다. OWASP는 입력값 검증을 가능한 한 데이터가 시스템에 들어오는 초기 단계에서 수행하도록 권고합니다.
대표 사례는 다음과 같습니다. 2014년 OpenSSL에서 발견된 Heartbleed 취약점은 요청에 포함된 길이 값을 검증하지 않아 서버 메모리에 남아있던 비밀번호와 암호화 키가 유출되었습니다.

