diff --git a/internal/nodes/http_request.go b/internal/nodes/http_request.go index db6253d..c6cca69 100644 --- a/internal/nodes/http_request.go +++ b/internal/nodes/http_request.go @@ -66,6 +66,8 @@ type HTTPRequest struct { firewallRuleId int64 logAttrs map[string]string + + disableLog bool // 此请求中关闭Log } // 初始化 diff --git a/internal/nodes/http_request_log.go b/internal/nodes/http_request_log.go index 0de7026..50fd3a0 100644 --- a/internal/nodes/http_request_log.go +++ b/internal/nodes/http_request_log.go @@ -13,6 +13,10 @@ var requestId int64 = 1_0000_0000_0000_0000 // 日志 func (this *HTTPRequest) log() { + if this.disableLog { + return + } + // 计算请求时间 this.requestCost = time.Since(this.requestFromTime).Seconds() diff --git a/internal/nodes/http_request_waf.go b/internal/nodes/http_request_waf.go index aec3816..7563e07 100644 --- a/internal/nodes/http_request_waf.go +++ b/internal/nodes/http_request_waf.go @@ -34,6 +34,9 @@ func (this *HTTPRequest) doWAFRequest() (blocked bool) { this.writer.WriteHeader(http.StatusForbidden) this.writer.Close() + // 停止日志 + this.disableLog = true + return true } } @@ -54,6 +57,10 @@ func (this *HTTPRequest) doWAFRequest() (blocked bool) { // TODO 可以配置对封禁的处理方式等 this.writer.WriteHeader(http.StatusForbidden) this.writer.Close() + + // 停止日志 + this.disableLog = true + return true } } @@ -65,6 +72,10 @@ func (this *HTTPRequest) doWAFRequest() (blocked bool) { // TODO 可以配置对封禁的处理方式等 this.writer.WriteHeader(http.StatusForbidden) this.writer.Close() + + // 停止日志 + this.disableLog = true + return true } } @@ -73,6 +84,7 @@ func (this *HTTPRequest) doWAFRequest() (blocked bool) { } } + // 规则测试 w := sharedWAFManager.FindWAF(this.web.FirewallPolicy.Id) if w == nil { return