OpenAPI 작업에 HTTP 사용

작업별 schemes에 HTTP가 있으면 해당 작업의 평문 통신이 안내됩니다.

설명

OpenAPI 2.0에서 get 같은 작업의 schemes는 전역 전송 방식 설정을 재정의합니다. 여기에 http가 있으면 전역 설정이 HTTPS여도 해당 작업은 HTTP를 사용할 수 있는 것으로 문서화됩니다.

잠재적 영향

클라이언트가 HTTP 주소로 요청하면 인증 정보나 응답 데이터가 통신 경로에서 노출되거나 변조될 수 있습니다.

해결 방법

작업의 schemes에서 http를 제거하고 https를 사용하세요. HTTPS로 설정된 전역 값을 따르게 하려면 작업별 재정의를 제거할 수도 있습니다. 실제 엔드포인트에도 HTTPS를 적용하세요.

예시

다음 예시는 GET / 작업의 전송 방식을 변경합니다. schemes는 Path Item 자체가 아닌 작업 객체의 속성입니다.

변경 전

json
{
  "swagger": "2.0",
  "paths": {
    "/": {
      "get": {
        "schemes": [
          "http"
        ],
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    }
  }
}

변경 후

json
{
  "swagger": "2.0",
  "paths": {
    "/": {
      "get": {
        "schemes": [
          "https"
        ],
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    }
  }
}

참조