△/SecureCoding
정수 오버플로우
KkingKkang
2022. 11. 17. 16:43
728x90
- 정수형 변수의 오버플로우는 정수값이 증가하면서, Java에서 허용된 가장 큰 값보다 더 커져서 실제 저장되는 값은 의도하지 않게 아주 작은 수이거나 음수가 될 수 있다.
- 특히 반목문 제어, 메모리 할당, 메모리 복사 등을 위한 조건에서 발생하면 보안상 문제를 유발할 수 있다.
- 언어/플래폼 별 정수타입의 범위를 확인하여 사용한다.
ex)
1. 배열의 크기 값이 음수값이 아닌지 검사한다.
if (size < 0) return;
2. 최대값 체크
if((dataIndex < 0 ) || (dataIndex > Integer.MAX_VALUE / DATA_SIZE)){
return;
}
728x90