보안/시큐어코딩
[시큐어코딩-13] 입력데이터 검증및 표현(13) 정수오버플로우
오픈이지
2012. 10. 28. 15:01
발생원인
입력 값의 크기에 대한 검증이 없는 경우 발생
영향
시스템 오류 발생, 임의 명령 실행, 시스템 점령등
코드예
안전하기 않은 코드의 예 - JAVA |
…… public static void main(String[] args){ int size = new Integer(args[0]).intValue(); size += new Integer(args[1]).intValue(); MyClass[] data = new MyClass[size]; …… |
size 크기에 대한 검증 절차가 없다. |
안전한 코드의 예 - JAVA |
…… public static void main(String[] args) { int size = new Integer(args[0]).intValue(); size += new Integer(args[1]).intValue(); // 배열의 크기 값이 음수값이 아닌지 검사한다. if (size < 0) return ; MyClass[ ] data = new MyClass[size]; …… |
size에 대한 크기 검사를 수행한다. |