MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / doWAFResponse

Method doWAFResponse

internal/nodes/http_request_waf.go:360–391  ·  view source on GitHub ↗

call response waf

(resp *http.Response)

Source from the content-addressed store, hash-verified

358
359// call response waf
360func (this *HTTPRequest) doWAFResponse(resp *http.Response) (blocked bool) {
361 if this.web.FirewallRef == nil || !this.web.FirewallRef.IsOn {
362 return
363 }
364
365 // 当前服务的独立设置
366 var forceLog = false
367 var forceLogRequestBody = false
368 if this.ReqServer.HTTPFirewallPolicy != nil && this.ReqServer.HTTPFirewallPolicy.IsOn && this.ReqServer.HTTPFirewallPolicy.Log != nil && this.ReqServer.HTTPFirewallPolicy.Log.IsOn {
369 forceLog = true
370 forceLogRequestBody = this.ReqServer.HTTPFirewallPolicy.Log.RequestBody
371 }
372
373 if this.web.FirewallPolicy != nil && this.web.FirewallPolicy.IsOn {
374 blockedRequest, breakChecking := this.checkWAFResponse(this.web.FirewallPolicy, resp, forceLog, forceLogRequestBody, false)
375 if blockedRequest {
376 return true
377 }
378 if breakChecking {
379 return
380 }
381 }
382
383 // 公用的防火墙设置
384 if this.ReqServer.HTTPFirewallPolicy != nil && this.ReqServer.HTTPFirewallPolicy.IsOn {
385 blockedRequest, _ := this.checkWAFResponse(this.ReqServer.HTTPFirewallPolicy, resp, forceLog, forceLogRequestBody, this.web.FirewallRef.IgnoreGlobalRules)
386 if blockedRequest {
387 return true
388 }
389 }
390 return
391}
392
393// check waf outbound rules
394func (this *HTTPRequest) checkWAFResponse(firewallPolicy *firewallconfigs.HTTPFirewallPolicy, resp *http.Response, forceLog bool, logRequestBody bool, ignoreRules bool) (blocked bool, breakChecking bool) {

Callers 1

doOriginRequestMethod · 0.95

Calls 1

checkWAFResponseMethod · 0.95

Tested by

no test coverage detected