mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-07 02:20:25 +08:00
WAF动作record_ip返回403/优化关闭连接方法
This commit is contained in:
@@ -2,20 +2,5 @@
|
|||||||
|
|
||||||
package waf
|
package waf
|
||||||
|
|
||||||
import "net/http"
|
|
||||||
|
|
||||||
type BaseAction struct {
|
type BaseAction struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// CloseConn 关闭连接
|
|
||||||
func (this *BaseAction) CloseConn(writer http.ResponseWriter) error {
|
|
||||||
// 断开连接
|
|
||||||
hijack, ok := writer.(http.Hijacker)
|
|
||||||
if ok {
|
|
||||||
conn, _, err := hijack.Hijack()
|
|
||||||
if err == nil {
|
|
||||||
return conn.Close()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ func (this *Get302Action) Perform(waf *WAF, group *RuleGroup, set *RuleSet, requ
|
|||||||
|
|
||||||
// 关闭连接
|
// 关闭连接
|
||||||
if request.WAFRaw().ProtoMajor == 1 {
|
if request.WAFRaw().ProtoMajor == 1 {
|
||||||
_ = this.CloseConn(writer)
|
request.WAFClose()
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ func (this *Post307Action) Perform(waf *WAF, group *RuleGroup, set *RuleSet, req
|
|||||||
http.Redirect(writer, request.WAFRaw(), request.WAFRaw().URL.String(), http.StatusTemporaryRedirect)
|
http.Redirect(writer, request.WAFRaw(), request.WAFRaw().URL.String(), http.StatusTemporaryRedirect)
|
||||||
|
|
||||||
if request.WAFRaw().ProtoMajor == 1 {
|
if request.WAFRaw().ProtoMajor == 1 {
|
||||||
_ = this.CloseConn(writer)
|
request.WAFClose()
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -90,7 +90,9 @@ func (this *RecordIPAction) Perform(waf *WAF, group *RuleGroup, set *RuleSet, re
|
|||||||
expiredAt := time.Now().Unix() + int64(timeout)
|
expiredAt := time.Now().Unix() + int64(timeout)
|
||||||
|
|
||||||
if this.Type == "black" {
|
if this.Type == "black" {
|
||||||
_ = this.CloseConn(writer)
|
writer.WriteHeader(http.StatusForbidden)
|
||||||
|
|
||||||
|
request.WAFClose()
|
||||||
|
|
||||||
SharedIPBlackList.Add(IPTypeAll, request.WAFRemoteIP(), expiredAt)
|
SharedIPBlackList.Add(IPTypeAll, request.WAFRemoteIP(), expiredAt)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user