본문 바로가기

보안/시큐어코딩

[CERT JAVA 시큐어코딩표준-04] 수치형과 연산(NUM)

규칙



수치형 데이터의 정확한 이해와 부적절한 연산은 안전하지 않은 프로그램을 작성할 수 있게 한다.

NUM00-J.  정수오버플로우를 탐지하거나 예방한다.

NUM01-J.  동일 데이터에 비트 연산과 수리 연산을 수행하지 않는다.

NUM02-J.  나눗셈과 모듈로 연산할 때 0으로 나누지 않게 보장한다.

NUM03-J.  unsigned형을 저장하는 정수형 변수는 가능한 모든 값을 표현할 수 있어야 한다.

NUM04-J.  정확히 계산해야 할 때는 부동 소수점형을 사용하지 않는다.

NUM05-J.  비정규화된 부동 소수점을 사용하지 않는다.

NUM06-J.  플랫폼 간 부동소수점 연산의 결과를 동일하게 하려면 strictfp 지시자를 사용한다.

NUM07-J.  NaN과 값을 비교하지 않는다.

NUM08-J.  부동소수점 입력시 예외적인 값을 확인한다.

NUM09-J.  루프카운터  부동소수점을 사용하지 않는다.

NUM10-J.  부동소수점 상수를 사용해서 BigDecimal 객체를 만들지 않는다.

NUM11-J.  부동소수점을 나타내는 문자열을 비교하거나 검사하지 않는다.

NUM12-J.  수치형 값을 더 작은 형으로 변환할 때 데이터가 손실되거나 잘못 변환되지 않게 확인한다.

NUM13-J.  기본 정수형을 부동 소수점형으로 변환할 때 정밀도 손실을 피한다.





작성중....