문자열 최대 길이 미정의 (OpenAPI 3.0)

길이 제한이 필요한 문자열에 maxLength가 없는 경우

설명

문자열에 길이 제한이 필요한데 maxLength나 동등한 제약이 없으면 지나치게 긴 값도 스키마상 허용될 수 있습니다.

잠재적 영향

서버도 길이를 제한하지 않으면 큰 입력으로 메모리와 저장 공간 사용량이 늘거나 처리 오류가 발생할 수 있습니다.

해결 방법

업무 요구사항에 맞는 maxLength를 정의하고 서버의 허용 길이와 일치시키세요. 허용 값 목록 등으로 이미 길이가 제한되어 있는지도 확인하세요.

예시

다음 OpenAPI 3.0 발췌 예시는 code를 최대 15자, message를 최대 255자로 제한합니다. 실제 한도는 각 필드의 용도에 맞게 정하세요.

변경 전

json
{
  "openapi": "3.0.0",
  "components": {
    "schemas": {
      "GeneralError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      }
    }
  }
}

변경 후

json
{
  "openapi": "3.0.0",
  "components": {
    "schemas": {
      "GeneralError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "maxLength": 15
          },
          "message": {
            "type": "string",
            "maxLength": 255
          }
        }
      }
    }
  }
}

참조