From 41be3b01054e1b7ef16c4cddaef07215ca5b977d Mon Sep 17 00:00:00 2001 From: samwaf Date: Mon, 19 Aug 2024 15:02:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=AD=A3=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E5=86=99=E5=85=A5=E5=A4=B1=E8=B4=A5=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wafenginecore/checkcc.go | 2 +- wafenginecore/wafengine.go | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/wafenginecore/checkcc.go b/wafenginecore/checkcc.go index b22ab7e..a162cd1 100644 --- a/wafenginecore/checkcc.go +++ b/wafenginecore/checkcc.go @@ -9,7 +9,7 @@ import ( /* * -检测xss +检测cc */ func (waf *WafEngine) CheckCC(weblogbean *innerbean.WebLog, formValue url.Values) detection.Result { result := detection.Result{ diff --git a/wafenginecore/wafengine.go b/wafenginecore/wafengine.go index e9d3bc3..d88df80 100644 --- a/wafenginecore/wafengine.go +++ b/wafenginecore/wafengine.go @@ -87,7 +87,11 @@ func (waf *WafEngine) ServeHTTP(w http.ResponseWriter, r *http.Request) { //检测如果访问IP和远程IP是同一个IP,且远程端口在本地Server已存在则显示配置错误 if ipAndPort[0] == waf.HostTarget[host].Host.Remote_ip && ok == true { resBytes := []byte("500: 配置有误" + host + " 当前IP和访问远端IP一样,且端口也一样,会造成循环问题") - w.Write(resBytes) + _, err := w.Write(resBytes) + if err != nil { + zlog.Debug("write fail:", zap.Any("", err)) + return + } return } @@ -252,7 +256,11 @@ func (waf *WafEngine) ServeHTTP(w http.ResponseWriter, r *http.Request) { return } else { resBytes := []byte("403: Host forbidden " + host) - w.Write(resBytes) + _, err := w.Write(resBytes) + if err != nil { + zlog.Debug("write fail:", zap.Any("", err)) + return + } // 获取请求报文的内容长度 contentLength := r.ContentLength @@ -322,7 +330,11 @@ func EchoErrorInfo(w http.ResponseWriter, r *http.Request, weblogbean innerbean. resBytes := []byte("您的访问被阻止

" + blockInfo + "


访问识别码:

" + weblogbean.REQ_UUID + "

") w.WriteHeader(403) - w.Write(resBytes) + _, err := w.Write(resBytes) + if err != nil { + zlog.Debug("write fail:", zap.Any("", err)) + return + } datetimeNow := time.Now() weblogbean.TimeSpent = datetimeNow.UnixNano()/1e6 - weblogbean.UNIX_ADD_TIME //记录响应body