diff --git a/internal/web/actions/default/servers/server/settings/origins/updatePopup.go b/internal/web/actions/default/servers/server/settings/origins/updatePopup.go index fdc54c7f..8ff99304 100644 --- a/internal/web/actions/default/servers/server/settings/origins/updatePopup.go +++ b/internal/web/actions/default/servers/server/settings/origins/updatePopup.go @@ -4,6 +4,7 @@ import ( "encoding/json" "github.com/TeaOSLab/EdgeAdmin/internal/oplogs" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/configutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" @@ -144,7 +145,7 @@ func (this *UpdatePopupAction) RunPost(params struct { Field("addr", params.Addr). Require("请输入源站地址") - addr := params.Addr + var addr = params.Addr // 是否是完整的地址 if (params.Protocol == "http" || params.Protocol == "https") && regexp.MustCompile(`^(http|https)://`).MatchString(addr) { @@ -169,9 +170,23 @@ func (this *UpdatePopupAction) RunPost(params struct { } var host = addr[:portIndex] var port = addr[portIndex+1:] + // 检查端口号 if port == "0" { this.Fail("端口号不能为0") } + if !configutils.HasVariables(port) { + // 必须是整数 + if !regexp.MustCompile(`^\d+$`).MatchString(port) { + this.Fail("端口号只能为整数") + } + var portInt = types.Int(port) + if portInt == 0 { + this.Fail("端口号不能为0") + } + if portInt > 65535 { + this.Fail("端口号不能大于65535") + } + } connTimeoutJSON, err := (&shared.TimeDuration{ Count: int64(params.ConnTimeout),