修复WAF OnAction在并发时无法准确调用请求动作的Bug

This commit is contained in:
GoEdgeLab
2021-12-01 17:43:08 +08:00
parent 0b3ef14640
commit 28958b379d
8 changed files with 34 additions and 43 deletions

View File

@@ -139,11 +139,9 @@ func (this *RuleSet) PerformActions(waf *WAF, group *RuleGroup, req requests.Req
// 先执行allow
for _, instance := range this.actionInstances {
if !instance.WillChange() {
if waf.onActionCallback != nil {
goNext := waf.onActionCallback(instance)
if !goNext {
return false
}
goNext := req.WAFOnAction(instance)
if !goNext {
return false
}
instance.Perform(waf, group, this, req, writer)
}
@@ -153,11 +151,9 @@ func (this *RuleSet) PerformActions(waf *WAF, group *RuleGroup, req requests.Req
for _, instance := range this.actionInstances {
// 只执行第一个可能改变请求的动作,其余的都会被忽略
if instance.WillChange() {
if waf.onActionCallback != nil {
goNext := waf.onActionCallback(instance)
if !goNext {
return false
}
goNext := req.WAFOnAction(instance)
if !goNext {
return false
}
return instance.Perform(waf, group, this, req, writer)
}