From 87a5aee9829f1c85705f8007804363e8d48c28cb Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 30 Aug 2023 10:13:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=88=AC=E8=99=AB=E8=A7=84=E5=88=99=E4=B8=AD?= =?UTF-8?q?=E5=B0=86php=E6=94=B9=E4=B8=BAphp\b=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E5=B1=8F=E8=94=BD=E6=9F=90=E4=BA=9B=E5=AE=89=E5=8D=93WebView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../firewallconfigs/http_firewall_template.go | 2 +- .../http_firewall_template_test.go | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 pkg/serverconfigs/firewallconfigs/http_firewall_template_test.go diff --git a/pkg/serverconfigs/firewallconfigs/http_firewall_template.go b/pkg/serverconfigs/firewallconfigs/http_firewall_template.go index ed36a7e..6f2ddf4 100644 --- a/pkg/serverconfigs/firewallconfigs/http_firewall_template.go +++ b/pkg/serverconfigs/firewallconfigs/http_firewall_template.go @@ -457,7 +457,7 @@ func HTTPFirewallTemplate() *HTTPFirewallPolicy { IsOn: true, Param: "${userAgent}", Operator: HTTPFirewallRuleOperatorMatch, - Value: `python|pycurl|http-client|httpclient|apachebench|nethttp|http_request|java|perl|ruby|scrapy|php|rust`, + Value: `python|pycurl|http-client|httpclient|apachebench|nethttp|http_request|java|perl|ruby|scrapy|php\b|rust`, IsCaseInsensitive: true, }) set.AddRule(&HTTPFirewallRule{ diff --git a/pkg/serverconfigs/firewallconfigs/http_firewall_template_test.go b/pkg/serverconfigs/firewallconfigs/http_firewall_template_test.go new file mode 100644 index 0000000..e456fbf --- /dev/null +++ b/pkg/serverconfigs/firewallconfigs/http_firewall_template_test.go @@ -0,0 +1,19 @@ +// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn . + +package firewallconfigs_test + +import ( + "github.com/iwind/TeaGo/assert" + "regexp" + "testing" +) + +func TestUserAgentMatch_PHP(t *testing.T) { + var a = assert.NewAssertion(t) + + var expr = `python|pycurl|http-client|httpclient|apachebench|nethttp|http_request|java|perl|ruby|scrapy|php\b|rust` + var reg = regexp.MustCompile(expr) + a.IsTrue(reg.MatchString("php")) + a.IsTrue(reg.MatchString("php/5.0")) + a.IsFalse(reg.MatchString("php110")) +}