diff --git a/kernel/util/path.go b/kernel/util/path.go index 87a35604e..e2f39a6ef 100644 --- a/kernel/util/path.go +++ b/kernel/util/path.go @@ -165,6 +165,14 @@ func IsRelativePath(dest string) bool { if '/' == dest[0] { return false } + + // 检查特定协议前缀 + lowerDest := strings.ToLower(dest) + if strings.HasPrefix(lowerDest, "mailto:") || + strings.HasPrefix(lowerDest, "tel:") || + strings.HasPrefix(lowerDest, "sms:") { + return false + } return !strings.Contains(dest, ":/") && !strings.Contains(dest, ":\\") }