WAF规则校验错误不阻断执行

This commit is contained in:
GoEdgeLab
2021-09-25 19:41:10 +08:00
parent c4f7d86648
commit d2bf6690b2
3 changed files with 20 additions and 2 deletions

View File

@@ -48,3 +48,7 @@ func (this *HTTPFirewallRule) Prefix() string {
} }
return this.Param return this.Param
} }
func (this *HTTPFirewallRule) Summary() string {
return this.Param + " " + FindRuleOperatorName(this.Operator) + " " + this.Value
}

View File

@@ -232,3 +232,12 @@ var AllRuleOperators = []*RuleOperatorDefinition{
CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo, CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
}, },
} }
func FindRuleOperatorName(code string) string {
for _, operator := range AllRuleOperators {
if operator.Code == code {
return operator.Name
}
}
return ""
}

View File

@@ -1,6 +1,9 @@
package firewallconfigs package firewallconfigs
import "github.com/iwind/TeaGo/maps" import (
"github.com/iwind/TeaGo/logs"
"github.com/iwind/TeaGo/maps"
)
// HTTPFirewallActionConfig 单个动作配置 // HTTPFirewallActionConfig 单个动作配置
type HTTPFirewallActionConfig struct { type HTTPFirewallActionConfig struct {
@@ -30,7 +33,9 @@ func (this *HTTPFirewallRuleSet) Init() error {
for _, rule := range this.Rules { for _, rule := range this.Rules {
err := rule.Init() err := rule.Init()
if err != nil { if err != nil {
return err logs.Println("ERROR", "validate rule '"+rule.Summary()+"' failed: "+err.Error())
// 这里不阻断执行,因为先前有些用户填写了错误的规则
} }
} }