diff --git a/web/default/src/features/wallet/lib/ui.tsx b/web/default/src/features/wallet/lib/ui.tsx
index 1187f93d..41a75eb6 100644
--- a/web/default/src/features/wallet/lib/ui.tsx
+++ b/web/default/src/features/wallet/lib/ui.tsx
@@ -27,26 +27,24 @@ import { PAYMENT_TYPES, PAYMENT_ICON_COLORS } from '../constants'
// UI Helper Functions
// ============================================================================
-const HAS_LOCATION =
- typeof globalThis !== 'undefined' && 'location' in globalThis
-
/**
- * Resolves a backend-provided image URL to http(s) only. Rejects javascript:,
- * data:, blob:, file:, and URLs with userinfo, which are unsafe in
.
+ * Resolves a backend-provided image URL to https only. Rejects http:,
+ * data:, blob:, file:, relative paths, and URLs with userinfo, which are unsafe
+ * or ambiguous in
.
*/
function normalizeHttpIconUrl(raw: string | undefined | null): string | null {
if (!raw) return null
const s = raw.trim()
if (!s) return null
+ if (!/^https:\/\//i.test(s)) return null
+
let url: URL
try {
- url = HAS_LOCATION
- ? new URL(s, (globalThis as { location: Location }).location.href)
- : new URL(s)
+ url = new URL(s)
} catch {
return null
}
- if (url.protocol !== 'http:' && url.protocol !== 'https:') {
+ if (url.protocol !== 'https:') {
return null
}
if (url.username || url.password) {