WAF策略增加显示页面动作默认设置

This commit is contained in:
刘祥超
2024-01-20 16:18:07 +08:00
parent 45ba4fe5f1
commit 7d11b3c63b
3 changed files with 21 additions and 2 deletions

View File

@@ -10,11 +10,21 @@ import (
type PageAction struct {
BaseAction
Status int `yaml:"status" json:"status"`
Body string `yaml:"body" json:"body"`
UseDefault bool `yaml:"useDefault" json:"useDefault"`
Status int `yaml:"status" json:"status"`
Body string `yaml:"body" json:"body"`
}
func (this *PageAction) Init(waf *WAF) error {
if waf.DefaultPageAction != nil {
if this.Status <= 0 || this.UseDefault {
this.Status = waf.DefaultPageAction.Status
}
if len(this.Body) == 0 || this.UseDefault {
this.Body = waf.DefaultPageAction.Body
}
}
if this.Status <= 0 {
this.Status = http.StatusForbidden
}

View File

@@ -27,6 +27,7 @@ type WAF struct {
SYNFlood *firewallconfigs.SYNFloodConfig `yaml:"synFlood" json:"synFlood"`
DefaultBlockAction *BlockAction
DefaultPageAction *PageAction
DefaultCaptchaAction *CaptchaAction
hasInboundRules bool

View File

@@ -184,6 +184,14 @@ func (this *WAFManager) ConvertWAF(policy *firewallconfigs.HTTPFirewallPolicy) (
}
}
// page action
if policy.PageOptions != nil {
w.DefaultPageAction = &PageAction{
Status: policy.PageOptions.Status,
Body: policy.PageOptions.Body,
}
}
// captcha action
if policy.CaptchaOptions != nil {
w.DefaultCaptchaAction = &CaptchaAction{