Просмотр исходного кода

Merge branch 'hotfix/jinbo_test_0329' into debug

# Conflicts:
#	utils/common.go
xyxie 1 год назад
Родитель
Сommit
b1c7a6a3cb
1 измененных файлов с 12 добавлено и 3 удалено
  1. 12 3
      utils/common.go

+ 12 - 3
utils/common.go

@@ -24,6 +24,7 @@ import (
 	"math/rand"
 	"net"
 	"net/http"
+	"net/url"
 	"os"
 	"os/exec"
 	"path"
@@ -2346,9 +2347,17 @@ func ByteToMB(byteCount int) float64 {
 
 // 检查src属性是否以http或data:image开头
 func isValidSrc(src string) bool {
-	validSchemes := regexp.MustCompile(`^(http|https|data:image):[\w\./?%&=]*$`)
-	fmt.Println(validSchemes.MatchString(src))
-	return validSchemes.MatchString(src)
+	// 使用Parse函数解析URL
+	parsedURL, err := url.Parse(src)
+	if err != nil {
+		validSchemes := regexp.MustCompile(`^data:image\/.*;base64,.*$`)
+		return validSchemes.MatchString(src)
+	}
+	if parsedURL.Host == "" || (parsedURL.Scheme != "http" && parsedURL.Scheme != "https") {
+		validSchemes := regexp.MustCompile(`^data:image\/.*;base64,.*$`)
+		return validSchemes.MatchString(src)
+	}
+	return true
 }
 
 // ContentXssCheck 校验文本中的JS代码