在GET302和CAPTCHA验证中不记录特殊URL的访问日志

This commit is contained in:
GoEdgeLab
2023-03-16 10:38:40 +08:00
parent 0449c0639d
commit 3e744ef9c7
4 changed files with 18 additions and 0 deletions

View File

@@ -421,3 +421,8 @@ func (this *HTTPRequest) WAFFingerprint() []byte {
return nil
}
// DisableAccessLog 在当前请求中不使用访问日志
func (this *HTTPRequest) DisableAccessLog() {
this.disableLog = true
}

View File

@@ -37,4 +37,7 @@ type Request interface {
// Format 格式化变量
Format(string) string
// DisableAccessLog 在当前请求中不使用访问日志
DisableAccessLog()
}

View File

@@ -76,3 +76,11 @@ func (this *TestRequest) Format(s string) string {
func (this *TestRequest) WAFOnAction(action interface{}) bool {
return true
}
func (this *TestRequest) WAFFingerprint() []byte {
return nil
}
func (this *TestRequest) DisableAccessLog() {
}

View File

@@ -250,12 +250,14 @@ func (this *WAF) MatchRequest(req requests.Request, writer http.ResponseWriter)
// validate captcha
var rawPath = req.WAFRaw().URL.Path
if rawPath == CaptchaPath {
req.DisableAccessLog()
captchaValidator.Run(req, writer)
return
}
// Get 302验证
if rawPath == Get302Path {
req.DisableAccessLog()
get302Validator.Run(req, writer)
return
}