mirror of
https://gitee.com/samwaf/SamWaf.git
synced 2026-11-01 10:41:43 +08:00
60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package utils
|
|
|
|
import (
|
|
"SamWaf/innerbean"
|
|
"SamWaf/model"
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func TestRuleHelper_Match(t *testing.T) {
|
|
//加载主机对于的规则
|
|
ruleHelper := &RuleHelper{}
|
|
ruleHelper.InitRuleEngine()
|
|
|
|
drls := `
|
|
|
|
rule R1ca0bf1c409e4c1b823c995afe7733b0 "禁止一些robotahrefs" salience 10 {
|
|
when
|
|
MF.USER_AGENT.Contains("amazonbot") == True || MF.USER_AGENT.Contains("1212") == True || MF.USER_AGENT.Contains("Mozilla") == True
|
|
then
|
|
|
|
Retract("R1ca0bf1c409e4c1b823c995afe7733b0");
|
|
} `
|
|
var ruleconfigs []model.Rules
|
|
rule := model.Rules{
|
|
Id: 0,
|
|
TenantId: "",
|
|
HostCode: "",
|
|
RuleCode: "",
|
|
RuleName: "",
|
|
RuleContent: drls,
|
|
RuleContentJSON: "",
|
|
RuleVersionName: "",
|
|
RuleVersion: 0,
|
|
UserCode: "",
|
|
IsPublicRule: 0,
|
|
IsManualRule: 0,
|
|
RuleStatus: 0,
|
|
}
|
|
ruleconfigs = append(ruleconfigs, rule)
|
|
ruleHelper.LoadRules(ruleconfigs)
|
|
|
|
//weblog
|
|
logs := innerbean.WebLog{
|
|
USER_AGENT: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot)",
|
|
}
|
|
ruleMatchs, err := ruleHelper.Match("MF", &logs)
|
|
if err == nil {
|
|
if len(ruleMatchs) > 0 {
|
|
rulestr := ""
|
|
for _, v := range ruleMatchs {
|
|
rulestr = rulestr + v.RuleDescription + ","
|
|
}
|
|
fmt.Printf("%s", rulestr)
|
|
return
|
|
}
|
|
}
|
|
|
|
}
|