Commit Graph

6 Commits

Author SHA1 Message Date
c0mrade
b4f066942a fix(security): validate the deep-link url in miniapp/redirect.html (open redirect + DOM-XSS)
public/miniapp/redirect.html read the `url` query param and assigned it to both
the manual <a href> and window.location.href with no validation. Served on the
cabinet's own origin, this was an open redirect (phishing) and — in Telegram /
WebView contexts that execute javascript: URIs in top-level navigation — a
DOM-XSS able to exfiltrate the refresh_token from localStorage (account takeover).

Add isSafeAppLink(): only a custom app deep link passes (scheme://, excluding
http/https/file/blob/about/intent/content and the javascript/data/vbscript
script schemes); anything else renders the no-URL state instead of navigating or
setting href. Mirrors the validation already in src/pages/DeepLinkRedirect.tsx.
2026-06-04 16:54:50 +03:00
c0mrade
b877d7f175 fix(flags): render flag emoji on Windows globally via a scoped flag font
Windows ships no glyphs for regional-indicator flag emoji, so flags fell back to country letters everywhere react-twemoji wasn't manually wrapped. Bundle the Twemoji country-flags woff2 locally (no runtime CDN — matters for our audience) and add it as an @font-face scoped with unicode-range to flag codepoints only, then put it first in every Tailwind font stack (sans/display/mono). The browser now uses it solely for flag characters, so every flag renders correctly app-wide with zero markup changes and no effect on any other text.
2026-06-01 16:00:28 +03:00
Egor
3c9cc0ea9d Delete public/miniapp/index.html 2026-01-20 02:22:17 +03:00
Egor
c0ff915f43 Update index.html 2026-01-20 02:15:44 +03:00
Egor
b56c9030f4 Update index.html 2026-01-20 01:45:31 +03:00
Egor
2274a23b62 Add files via upload 2026-01-15 19:20:17 +03:00