mirror of
				https://github.com/TeaOSLab/EdgeCommon.git
				synced 2025-11-04 05:00:24 +08:00 
			
		
		
		
	WAF规则校验错误不阻断执行
This commit is contained in:
		@@ -48,3 +48,7 @@ func (this *HTTPFirewallRule) Prefix() string {
 | 
			
		||||
	}
 | 
			
		||||
	return this.Param
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *HTTPFirewallRule) Summary() string {
 | 
			
		||||
	return this.Param + " " + FindRuleOperatorName(this.Operator) + " " + this.Value
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -232,3 +232,12 @@ var AllRuleOperators = []*RuleOperatorDefinition{
 | 
			
		||||
		CaseInsensitive: HTTPFirewallRuleCaseInsensitiveNo,
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func FindRuleOperatorName(code string) string {
 | 
			
		||||
	for _, operator := range AllRuleOperators {
 | 
			
		||||
		if operator.Code == code {
 | 
			
		||||
			return operator.Name
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,9 @@
 | 
			
		||||
package firewallconfigs
 | 
			
		||||
 | 
			
		||||
import "github.com/iwind/TeaGo/maps"
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/iwind/TeaGo/logs"
 | 
			
		||||
	"github.com/iwind/TeaGo/maps"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// HTTPFirewallActionConfig 单个动作配置
 | 
			
		||||
type HTTPFirewallActionConfig struct {
 | 
			
		||||
@@ -30,7 +33,9 @@ func (this *HTTPFirewallRuleSet) Init() error {
 | 
			
		||||
	for _, rule := range this.Rules {
 | 
			
		||||
		err := rule.Init()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
			logs.Println("ERROR", "validate rule '"+rule.Summary()+"' failed: "+err.Error())
 | 
			
		||||
 | 
			
		||||
			// 这里不阻断执行,因为先前有些用户填写了错误的规则
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user