From cdc3d8b8f13c8c27b96a0a0bb58d945f792d938e Mon Sep 17 00:00:00 2001 From: Chang lue Tsen Date: Tue, 29 Apr 2025 19:21:58 +0900 Subject: [PATCH] fix(subscribe): escape site name in content-disposition headers --- internal/logic/subscribe/subscribeLogic.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/logic/subscribe/subscribeLogic.go b/internal/logic/subscribe/subscribeLogic.go index 5b714f1..97af485 100644 --- a/internal/logic/subscribe/subscribeLogic.go +++ b/internal/logic/subscribe/subscribeLogic.go @@ -2,6 +2,7 @@ package subscribe import ( "fmt" + "net/url" "strings" "time" @@ -228,13 +229,13 @@ func (l *SubscribeLogic) buildClientConfig(req *types.SubscribeRequest, userSub } func (l *SubscribeLogic) setClashHeaders() { - l.ctx.Header("content-disposition", fmt.Sprintf("tattachment;filename*=UTF-8''%s.yaml", l.svc.Config.Site.SiteName)) + l.ctx.Header("content-disposition", fmt.Sprintf("attachment;filename*=UTF-8''%s", url.QueryEscape(l.svc.Config.Site.SiteName))) l.ctx.Header("Profile-Update-Interval", "24") l.ctx.Header("Content-Type", "application/octet-stream; charset=UTF-8") } func (l *SubscribeLogic) setSurfboardHeaders() { - l.ctx.Header("content-disposition", fmt.Sprintf("attachment;filename*=UTF-8''%s.conf", l.svc.Config.Site.SiteName)) + l.ctx.Header("content-disposition", fmt.Sprintf("attachment;filename*=UTF-8''%s.conf", url.QueryEscape(l.svc.Config.Site.SiteName))) l.ctx.Header("Content-Type", "application/octet-stream; charset=UTF-8") }