Ensure IPv6 compliant host (#1252)

* Ensure IPv6 compliant host in sub/subController

* Ensure IPv6 compliant host in web/controller/util

* Ensure IPv6 compliant host in web/middleware/domainValidator
This commit is contained in:
vnxme
2024-05-21 22:00:38 +03:00
committed by GitHub
parent bd5ec392e5
commit 1e3bd2fa73
3 changed files with 6 additions and 6 deletions

View File

@@ -2,7 +2,7 @@ package sub
import (
"encoding/base64"
"strings"
"net"
"github.com/gin-gonic/gin"
)
@@ -54,7 +54,7 @@ func (a *SUBController) initRouter(g *gin.RouterGroup) {
func (a *SUBController) subs(c *gin.Context) {
subId := c.Param("subid")
host := strings.Split(c.Request.Host, ":")[0]
host, _, _ := net.SplitHostPort(c.Request.Host)
subs, header, err := a.subService.GetSubs(subId, host)
if err != nil || len(subs) == 0 {
c.String(400, "Error!")
@@ -79,7 +79,7 @@ func (a *SUBController) subs(c *gin.Context) {
func (a *SUBController) subJsons(c *gin.Context) {
subId := c.Param("subid")
host := strings.Split(c.Request.Host, ":")[0]
host, _, _ := net.SplitHostPort(c.Request.Host)
jsonSub, header, err := a.subJsonService.GetJson(subId, host)
if err != nil || len(jsonSub) == 0 {
c.String(400, "Error!")

View File

@@ -61,7 +61,7 @@ func html(c *gin.Context, name string, title string, data gin.H) {
data = gin.H{}
}
data["title"] = title
data["host"] = strings.Split(c.Request.Host, ":")[0]
data["host"], _, _ = net.SplitHostPort(c.Request.Host)
data["request_uri"] = c.Request.RequestURI
data["base_path"] = c.GetString("base_path")
c.HTML(http.StatusOK, name, getContext(data))

View File

@@ -1,15 +1,15 @@
package middleware
import (
"net"
"net/http"
"strings"
"github.com/gin-gonic/gin"
)
func DomainValidatorMiddleware(domain string) gin.HandlerFunc {
return func(c *gin.Context) {
host := strings.Split(c.Request.Host, ":")[0]
host, _, _ := net.SplitHostPort(c.Request.Host)
if host != domain {
c.AbortWithStatus(http.StatusForbidden)