waf
waf copied to clipboard
规则文件中的正则表达式不规范可能导致server端崩溃
当规则文件中包含的正则表达式格式不正确时,可能会导致服务端在尝试匹配来自网关的数据过程中出现崩溃。如下图
如果正则表达式编写有误或不遵循规范,它们在执行匹配操作时可能引发服务端的异常错误,从而导致程序异常退出,造成该问题的入口为rule_regexp.go中的第48行,需增加异常判断。
ruleItem.reg, _ = regexp.Compile(item.Val)
rule.Rule = append(rule.Rule, ruleItem)
修改为
var err error
ruleItem.reg, err = regexp.Compile(item.Val)
if err != nil {
log.Println("Error", "%s, Error compiling regex '%s': %v", j.RuleName, item.Val, err)
return
} else {
rule.Rule = append(rule.Rule, ruleItem)
}