설명
bare except 또는 except Exception/BaseException은 예상하지 못한 오류까지 한꺼번에 처리해 보안 실패와 프로그래밍 오류를 숨길 수 있습니다.
잠재적 영향
- 인증, 검증, 파일 처리 실패가 잘못 복구될 수 있습니다.
- 운영 장애나 공격 시도가 일반 오류처럼 묻힐 수 있습니다.
해결 방법
- 복구 가능한 구체 예외만 처리합니다.
- 예상하지 못한 예외는 로깅 후 다시 발생시키거나 공통 오류 처리 계층에 위임합니다.
예시
변경 전
python
try:
return int(value)
except Exception:
return 0
변경 후
python
try:
return int(value)
except ValueError:
return 0
설명:
- 변경 전: bare
except또는except Exception/BaseException은 예상하지 못한 오류까지 한꺼번에 처리해 보안 실패와 프로그래밍 오류를 숨길 수 있습니다. - 변경 후: 복구 가능한 구체 예외만 처리합니다.