Files
EdgeNode/internal/waf
..
2020-11-22 12:11:39 +08:00
2021-02-02 14:27:55 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2021-01-26 18:42:46 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2021-03-28 16:22:12 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2020-11-21 22:29:57 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00
2020-11-21 22:29:57 +08:00
2021-02-02 15:29:27 +08:00
2020-10-08 15:06:42 +08:00
2020-10-08 15:06:42 +08:00

WAF

A basic WAF for TeaWeb.

Config Constructions

WAF
  Inbound
	  Rule Groups
		Rule Sets
		  Rules
			Checkpoint Param <Operator> Value
  Outbound
  	  Rule Groups
  	    ... 				

Apply WAF

Request  -->  WAF  -->   Backends
			/
Response  <-- WAF <----		

Coding

waf := teawaf.NewWAF()

// add rule groups here

err := waf.Init()
if err != nil {
	return
}
waf.Start()

// match http request
// (req *http.Request, responseWriter http.ResponseWriter)
goNext, ruleSet, _ := waf.MatchRequest(req, responseWriter)
if ruleSet != nil {
	log.Println("meet rule set:", ruleSet.Name, "action:", ruleSet.Action)
}
if !goNext {
	return
}

// stop the waf
// waf.Stop()