From d298f4ffbda29d87440ee2c12e8d3acee698bee5 Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Sun, 14 Jul 2024 23:55:04 +0200 Subject: [PATCH] fix domain validator Co-Authored-By: Alireza Ahmadi --- web/middleware/domainValidator.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/web/middleware/domainValidator.go b/web/middleware/domainValidator.go index 26a23895..52d2782c 100644 --- a/web/middleware/domainValidator.go +++ b/web/middleware/domainValidator.go @@ -3,6 +3,7 @@ package middleware import ( "net" "net/http" + "strings" "github.com/gin-gonic/gin" ) @@ -14,12 +15,17 @@ func DomainValidatorMiddleware(domain string) gin.HandlerFunc { host = c.GetHeader("X-Real-IP") } if host == "" { - host, _, _ := net.SplitHostPort(c.Request.Host) - if host != domain { - c.AbortWithStatus(http.StatusForbidden) - return + host = c.Request.Host + if colonIndex := strings.LastIndex(host, ":"); colonIndex != -1 { + host, _, _ = net.SplitHostPort(host) } - c.Next() } + + if host != domain { + c.AbortWithStatus(http.StatusForbidden) + return + } + + c.Next() } }