URL跳转之域名跳转增加跳转后域名校验

This commit is contained in:
GoEdgeLab
2023-03-15 15:07:55 +08:00
parent d1ceee3953
commit f8a5cfb683
2 changed files with 20 additions and 1 deletions

View File

@@ -3,6 +3,7 @@ package redirects
import ( import (
"encoding/json" "encoding/json"
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/dns/domains/domainutils"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
"github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/actions"
@@ -134,6 +135,23 @@ func (this *CreatePopupAction) RunPost(params struct {
this.FailField("domainAfter", "请输入跳转后域名") this.FailField("domainAfter", "请输入跳转后域名")
return return
} }
// 检查用户输入的是否为域名
if !domainutils.ValidateDomainFormat(params.DomainAfter) {
// 是否为URL
u, err := url.Parse(params.DomainAfter)
if err == nil {
if len(u.Host) == 0 {
this.FailField("domainAfter", "跳转后域名输入不正确")
return
}
params.DomainAfter = u.Host
} else {
this.FailField("domainAfter", "跳转后域名输入不正确")
return
}
}
config.DomainAfter = params.DomainAfter config.DomainAfter = params.DomainAfter
config.DomainAfterScheme = params.DomainAfterScheme config.DomainAfterScheme = params.DomainAfterScheme
case serverconfigs.HTTPHostRedirectTypePort: case serverconfigs.HTTPHostRedirectTypePort:

View File

@@ -90,7 +90,8 @@
<tr> <tr>
<td class="color-border">跳转后域名 *</td> <td class="color-border">跳转后域名 *</td>
<td> <td>
<input type="text" name="domainAfter" maxlength="100" v-model="redirect.domainAfter"/> <input type="text" name="domainAfter" maxlength="100" v-model="redirect.domainAfter" placeholder="比如example.com"/>
<p class="comment">这里填写的是网址中的域名部分,不需要添加<code-label>https://</code-label>部分。</p>
</td> </td>
</tr> </tr>
<tr> <tr>