diff --git a/frontend/src/components/layout/AuthLayout.vue b/frontend/src/components/layout/AuthLayout.vue
index 3cfc1d4d..129e8301 100644
--- a/frontend/src/components/layout/AuthLayout.vue
+++ b/frontend/src/components/layout/AuthLayout.vue
@@ -29,17 +29,19 @@
-
-
![Logo]()
-
-
- {{ siteName }}
-
-
- {{ siteSubtitle }}
-
+
+
+
![Logo]()
+
+
+ {{ siteName }}
+
+
+ {{ siteSubtitle }}
+
+
@@ -61,25 +63,21 @@
diff --git a/frontend/src/utils/url.ts b/frontend/src/utils/url.ts
index a4dc0351..57c6487f 100644
--- a/frontend/src/utils/url.ts
+++ b/frontend/src/utils/url.ts
@@ -6,6 +6,7 @@
*/
type SanitizeOptions = {
allowRelative?: boolean
+ allowDataUrl?: boolean
}
export function sanitizeUrl(value: string, options: SanitizeOptions = {}): string {
@@ -18,6 +19,11 @@ export function sanitizeUrl(value: string, options: SanitizeOptions = {}): strin
return trimmed
}
+ // 允许 data:image/ 开头的 data URL(仅限图片类型)
+ if (options.allowDataUrl && trimmed.startsWith('data:image/')) {
+ return trimmed
+ }
+
// 只接受绝对 URL,不使用 base URL 来避免相对路径被解析为当前域名
// 检查是否以 http:// 或 https:// 开头
if (!trimmed.match(/^https?:\/\//i)) {