본문 바로가기
공부/KISA

종료되지 않는 반복문 또는 재귀함수 - KISA 소프트웨어 개발 보안 가이드

by Skogkatt의 개인 블로그 2020. 7. 22.
반응형

https://www.kisa.or.kr/public/laws/laws3.jsp

 

기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원

기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥

www.kisa.or.kr


구현 단계 시큐어코딩 가이드 - 시간 및 상태 - 종료되지 않는 반복문 또는 재귀함수

가. 개요

  • 재귀의 순환횟수를 제어하지 못하여 할당된 메모리나 프로그램 스택 등의 자원을 과다하게 사용하면 위험하다. 대부분의 경우, 귀납 조건(Base Case)이 없는 재귀 함수는 무한 루프에 빠져 들게 되고 자원고갈을 유발함으로써 시스템의 정상적인 서비스를 제공할 수 없게 한다.

나. 보안대책

  • 모든 재귀 호출 시, 재귀 호출 횟수를 제한하거나, 초기값을 설정(상수)하여 재귀 호출을 제한해야 한다.

다. 코드예제

C
더보기

factorial 함수는 함수 내부에서 자신을 호출하는 재귀함수로, 재귀문을 빠져나오는 조건을 정의하고 있지 않아 무한 재귀에 빠져 시스템 장애를 유발할 수 있다.

재귀 함수를 구현할 때는 아래와 같이 재귀문을 빠져 나오는 조건인 귀납 조건(Base case)을 반드시 구현해야 한다


참고자료

반응형

댓글