mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-20 13:00:25 +08:00
增加防盗链拦截时默认提示文字
This commit is contained in:
@@ -25,10 +25,10 @@ const httpStatusPageTemplate = `<!DOCTYPE html>
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
func (this *HTTPRequest) write404() {
|
func (this *HTTPRequest) write404() {
|
||||||
this.writeCode(http.StatusNotFound)
|
this.writeCode(http.StatusNotFound, "", "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *HTTPRequest) writeCode(statusCode int) {
|
func (this *HTTPRequest) writeCode(statusCode int, enMessage string, zhMessage string) {
|
||||||
if this.doPage(statusCode) {
|
if this.doPage(statusCode) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -42,7 +42,17 @@ func (this *HTTPRequest) writeCode(statusCode int) {
|
|||||||
case "requestId":
|
case "requestId":
|
||||||
return this.requestId
|
return this.requestId
|
||||||
case "message":
|
case "message":
|
||||||
return "" // 空
|
var acceptLanguages = this.RawReq.Header.Get("Accept-Language")
|
||||||
|
if len(acceptLanguages) > 0 {
|
||||||
|
var index = strings.Index(acceptLanguages, ",")
|
||||||
|
if index > 0 {
|
||||||
|
var firstLanguage = acceptLanguages[:index]
|
||||||
|
if firstLanguage == "zh-CN" {
|
||||||
|
return zhMessage
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return enMessage
|
||||||
}
|
}
|
||||||
return "${" + varName + "}"
|
return "${" + varName + "}"
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ func (this *HTTPRequest) doRequestLimit() (shouldStop bool) {
|
|||||||
// TODO 处理分片提交的内容
|
// TODO 处理分片提交的内容
|
||||||
if this.web.RequestLimit.MaxBodyBytes() > 0 &&
|
if this.web.RequestLimit.MaxBodyBytes() > 0 &&
|
||||||
this.RawReq.ContentLength > this.web.RequestLimit.MaxBodyBytes() {
|
this.RawReq.ContentLength > this.web.RequestLimit.MaxBodyBytes() {
|
||||||
this.writeCode(http.StatusRequestEntityTooLarge)
|
this.writeCode(http.StatusRequestEntityTooLarge, "", "")
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ func (this *HTTPRequest) doRequestLimit() (shouldStop bool) {
|
|||||||
clientConn, ok := requestConn.(ClientConnInterface)
|
clientConn, ok := requestConn.(ClientConnInterface)
|
||||||
if ok && !clientConn.IsBound() {
|
if ok && !clientConn.IsBound() {
|
||||||
if !clientConn.Bind(this.ReqServer.Id, this.requestRemoteAddr(true), this.web.RequestLimit.MaxConns, this.web.RequestLimit.MaxConnsPerIP) {
|
if !clientConn.Bind(this.ReqServer.Id, this.requestRemoteAddr(true), this.web.RequestLimit.MaxConns, this.web.RequestLimit.MaxConnsPerIP) {
|
||||||
this.writeCode(http.StatusTooManyRequests)
|
this.writeCode(http.StatusTooManyRequests, "", "")
|
||||||
this.Close()
|
this.Close()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ func (this *HTTPRequest) doCheckReferers() (shouldStop bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.tags = append(this.tags, "refererCheck")
|
this.tags = append(this.tags, "refererCheck")
|
||||||
this.writer.WriteHeader(http.StatusForbidden)
|
this.writeCode(http.StatusForbidden, "The referer has been blocked.", "当前访问已被防盗链系统拦截。")
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@@ -31,14 +31,14 @@ func (this *HTTPRequest) doCheckReferers() (shouldStop bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.tags = append(this.tags, "refererCheck")
|
this.tags = append(this.tags, "refererCheck")
|
||||||
this.writer.WriteHeader(http.StatusForbidden)
|
this.writeCode(http.StatusForbidden, "The referer has been blocked.", "当前访问已被防盗链系统拦截。")
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
if !this.web.Referers.MatchDomain(this.ReqHost, u.Host) {
|
if !this.web.Referers.MatchDomain(this.ReqHost, u.Host) {
|
||||||
this.tags = append(this.tags, "refererCheck")
|
this.tags = append(this.tags, "refererCheck")
|
||||||
this.writer.WriteHeader(http.StatusForbidden)
|
this.writeCode(http.StatusForbidden, "The referer has been blocked.", "当前访问已被防盗链系统拦截。")
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ func (this *HTTPRequest) checkWAFRequest(firewallPolicy *firewallconfigs.HTTPFir
|
|||||||
if countryId > 0 && lists.ContainsInt64(regionConfig.DenyCountryIds, countryId) {
|
if countryId > 0 && lists.ContainsInt64(regionConfig.DenyCountryIds, countryId) {
|
||||||
this.firewallPolicyId = firewallPolicy.Id
|
this.firewallPolicyId = firewallPolicy.Id
|
||||||
|
|
||||||
this.writeCode(http.StatusForbidden)
|
this.writeCode(http.StatusForbidden, "", "")
|
||||||
this.writer.Flush()
|
this.writer.Flush()
|
||||||
this.writer.Close()
|
this.writer.Close()
|
||||||
|
|
||||||
@@ -192,7 +192,7 @@ func (this *HTTPRequest) checkWAFRequest(firewallPolicy *firewallconfigs.HTTPFir
|
|||||||
if provinceId > 0 && lists.ContainsInt64(regionConfig.DenyProvinceIds, provinceId) {
|
if provinceId > 0 && lists.ContainsInt64(regionConfig.DenyProvinceIds, provinceId) {
|
||||||
this.firewallPolicyId = firewallPolicy.Id
|
this.firewallPolicyId = firewallPolicy.Id
|
||||||
|
|
||||||
this.writeCode(http.StatusForbidden)
|
this.writeCode(http.StatusForbidden, "", "")
|
||||||
this.writer.Flush()
|
this.writer.Flush()
|
||||||
this.writer.Close()
|
this.writer.Close()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user