Traefik EncodedCharacters 미들웨어
출처: Traefik EncodedCharacters 미들웨어 (EncodedCharacters Documentation)
본문
EncodedCharacters
EncodedCharacters 미들웨어는 요청 경로에서 어떤 모호한 예약 인코딩 문자를 허용할지 제어해요.
이 미들웨어를 사용하면 기본적으로 보안 강화를 위해 잠재적으로 위험한 인코딩 문자가 거부돼요.
설정 예시
Docker & Swarm
# 요청 경로에서 인코딩된 슬래시 허용
labels:
- "traefik.http.middlewares.test-encodedchars.encodedcharacters.allowencodedslash=true"
Kubernetes
# 요청 경로에서 인코딩된 슬래시 허용
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: test-encodedchars
spec:
encodedCharacters:
allowEncodedSlash: true
Consul Catalog
# 요청 경로에서 인코딩된 슬래시 허용
- "traefik.http.middlewares.test-encodedchars.encodedcharacters.allowencodedslash=true"
파일 (YAML)
# 요청 경로에서 인코딩된 슬래시 허용
http:
middlewares:
test-encodedchars:
encodedCharacters:
allowEncodedSlash: true
파일 (TOML)
# 요청 경로에서 인코딩된 슬래시 허용
[http.middlewares]
[http.middlewares.test-encodedchars.encodedCharacters]
allowEncodedSlash = true
설정 옵션
이 옵션들을 구성할 때 백엔드가 RFC 3986을 완전히 준수하는지 확인하세요. 이렇게 하면 Traefik과 백엔드가 동일한 URL을 다르게 해석하는 split-view 상황을 피할 수 있어요.
| 필드 | 설명 | 기본값 | 필수 |
| allowEncodedSlash | 요청 경로에서 인코딩된 슬래시(%2F 및 %2f)를 허용해요. | false | 아니요 |
| allowEncodedBackSlash | 요청 경로에서 인코딩된 백슬래시(%5C 및 %5c)를 허용해요. | false | 아니요 |
| allowEncodedSemicolon | 요청 경로에서 인코딩된 세미콜론(%3B 및 %3b)을 허용해요. | false | 아니요 |
| allowEncodedPercent | 요청 경로에서 인코딩된 퍼센트(%25)를 허용해요. | false | 아니요 |
| allowEncodedQuestionMark | 요청 경로에서 인코딩된 물음표(%3F 및 %3f)를 허용해요. | false | 아니요 |
| allowEncodedHash | 요청 경로에서 인코딩된 해시(%23)를 허용해요. | false | 아니요 |