설명
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"
}
}
}
}
}
}