diff --git a/internal/waf/action_captcha.go b/internal/waf/action_captcha.go index 623e59d..cc19334 100644 --- a/internal/waf/action_captcha.go +++ b/internal/waf/action_captcha.go @@ -134,6 +134,7 @@ func (this *CaptchaAction) Perform(waf *WAF, group *RuleGroup, set *RuleSet, req // 占用一次失败次数 CaptchaIncreaseFails(req, this, waf.Id, group.Id, set.Id, CaptchaPageCodeInit) + req.ProcessResponseHeaders(writer.Header(), http.StatusTemporaryRedirect) http.Redirect(writer, req.WAFRaw(), CaptchaPath+"?info="+url.QueryEscape(info), http.StatusTemporaryRedirect) return false, false diff --git a/internal/waf/action_get_302.go b/internal/waf/action_get_302.go index 1fa4eb1..bf4139f 100644 --- a/internal/waf/action_get_302.go +++ b/internal/waf/action_get_302.go @@ -67,6 +67,7 @@ func (this *Get302Action) Perform(waf *WAF, group *RuleGroup, set *RuleSet, requ return true, false } + request.ProcessResponseHeaders(writer.Header(), http.StatusFound) http.Redirect(writer, request.WAFRaw(), Get302Path+"?info="+url.QueryEscape(info), http.StatusFound) flusher, ok := writer.(http.Flusher) diff --git a/internal/waf/action_js_cookie.go b/internal/waf/action_js_cookie.go index caf94f3..4c7c8ea 100644 --- a/internal/waf/action_js_cookie.go +++ b/internal/waf/action_js_cookie.go @@ -75,14 +75,15 @@ func (this *JSCookieAction) Perform(waf *WAF, group *RuleGroup, set *RuleSet, re } } + req.ProcessResponseHeaders(writer.Header(), http.StatusOK) + writer.Header().Set("Content-Type", "text/html; charset=utf-8") writer.Header().Set("Cache-Control", "no-cache") var timestamp = types.String(time.Now().Unix()) var cookieValue = timestamp + "@" + types.String(set.Id) + "@" + fmt.Sprintf("%x", md5.Sum([]byte(timestamp+"@"+types.String(set.Id)+"@"+nodeConfig.NodeId))) - - _, _ = writer.Write([]byte(` + var respHTML = `