숫자 최댓값 미정의 (OpenAPI 3.0)

상한이 필요한 숫자 필드에 maximum 제약이 없는 경우

설명

수량이나 금액처럼 상한이 필요한 숫자 필드에 maximum 또는 동등한 제약이 없으면, 업무상 허용 범위를 넘는 값도 스키마를 통과할 수 있습니다.

잠재적 영향

서버도 상한을 검증하지 않으면 지나치게 큰 값이 계산 오류나 처리 실패를 일으킬 수 있습니다.

해결 방법

실제 허용 범위에 맞는 maximum을 정의하고 서버에서도 같은 한도를 검증하세요. 허용 값 목록이나 참조 스키마에 이미 상한이 정의되어 있는지도 확인하세요.

예시

다음 OpenAPI 3.0 발췌 예시는 code의 기존 최솟값 0에 최댓값 50을 추가합니다. 50은 이 예시의 업무상 한도입니다.

변경 전

json
{
  "openapi": "3.0.0",
  "components": {
    "schemas": {
      "GeneralError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          }
        }
      }
    }
  }
}

변경 후

json
{
  "openapi": "3.0.0",
  "components": {
    "schemas": {
      "GeneralError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 50
          }
        }
      }
    }
  }
}

참조