발생원인


입력 값의 크기에 대한 검증이 없는 경우 발생


영향


시스템 오류 발생, 임의 명령 실행, 시스템 점령등


코드예



 안전하기 않은 코드의 예 - 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에 대한 크기 검사를 수행한다.

블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

티스토리 툴바