From 6392297a27ceed26553d47b2b4d9a30ede7f241f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Fri, 2 Sep 2022 09:26:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=A0URL=E4=B8=AD?= =?UTF-8?q?=E5=90=AB=E6=9C=89=E6=90=9C=E7=B4=A2=E5=BC=95=E6=93=8E=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E8=AF=8D=E8=80=8C=E5=AF=BC=E8=87=B4=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?403=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/web/helpers/utils.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/internal/web/helpers/utils.go b/internal/web/helpers/utils.go index 8dd3d0e5..3e3884d4 100644 --- a/internal/web/helpers/utils.go +++ b/internal/web/helpers/utils.go @@ -10,6 +10,7 @@ import ( "github.com/iwind/TeaGo/logs" "net" "net/http" + "net/url" "regexp" "sync" ) @@ -120,15 +121,20 @@ func checkRequestSecurity(securityConfig *systemconfigs.SecurityConfig, req *htt } var userAgent = req.UserAgent() - var referer = req.Referer() + var refererURL = req.Referer() + var referHost = "" + u, err := url.Parse(refererURL) + if err == nil { + referHost = u.Host + } // 检查搜索引擎 - if securityConfig.DenySearchEngines && (len(userAgent) == 0 || searchEngineRegex.MatchString(userAgent) || (len(referer) > 0 && searchEngineRegex.MatchString(referer))) { + if securityConfig.DenySearchEngines && (len(userAgent) == 0 || searchEngineRegex.MatchString(userAgent) || (len(referHost) > 0 && searchEngineRegex.MatchString(referHost))) { return false } // 检查爬虫 - if securityConfig.DenySpiders && (len(userAgent) == 0 || spiderRegexp.MatchString(userAgent) || (len(referer) > 0 && spiderRegexp.MatchString(referer))) { + if securityConfig.DenySpiders && (len(userAgent) == 0 || spiderRegexp.MatchString(userAgent) || (len(referHost) > 0 && spiderRegexp.MatchString(referHost))) { return false }