From d034579f60cca30d267c538975c200f549650d02 Mon Sep 17 00:00:00 2001 From: Kuba Suder Date: Sun, 5 Jul 2026 18:27:27 +0200 Subject: [PATCH] some hardening against unexpected URLs in embeds --- src/components/embeds/ImagesComponent.svelte | 23 +++++++---- src/components/embeds/LinkComponent.svelte | 41 +++++++++++--------- src/components/embeds/VideoComponent.svelte | 23 +++++++---- src/components/posts/FediSourceLink.svelte | 16 +++++--- src/models/embeds.js | 10 ++++- src/utils.ts | 13 ++++--- 6 files changed, 79 insertions(+), 47 deletions(-) diff --git a/src/components/embeds/ImagesComponent.svelte b/src/components/embeds/ImagesComponent.svelte index 71d662f..643b8bb 100644 --- a/src/components/embeds/ImagesComponent.svelte +++ b/src/components/embeds/ImagesComponent.svelte @@ -1,23 +1,30 @@
{#each embed.images as image} -

[Image]

+ {#if rawMode} +

[Image]

+ {:else} + {#if isValidURL(image.fullsize)} +

[Image]

+ {:else} +

[{image.fullsize}]

+ {/if} + {/if} {#if image.alt}
diff --git a/src/components/embeds/LinkComponent.svelte b/src/components/embeds/LinkComponent.svelte index d44496c..18cedbc 100644 --- a/src/components/embeds/LinkComponent.svelte +++ b/src/components/embeds/LinkComponent.svelte @@ -1,39 +1,42 @@ -{#if showingGIF} - +{#if displayedGIF} + {:else} - {#if isValidURL(embed.url)} - + {#if parsedURL} + onClick(e, parsedURL)}>
-

{hostname}

+

{parsedURL.hostname}

{embed.title || embed.url}

{#if embed.description} diff --git a/src/components/embeds/VideoComponent.svelte b/src/components/embeds/VideoComponent.svelte index 4fa00b3..66cbef1 100644 --- a/src/components/embeds/VideoComponent.svelte +++ b/src/components/embeds/VideoComponent.svelte @@ -1,22 +1,29 @@
-

[Video]

+ {#if embed instanceof RawVideoEmbed} + {#if embed.video} +

[Video]

+ {/if} + {:else} + {#if embed.playlistURL && isValidURL(embed.playlistURL)} +

[Video]

+ {:else} +

[{embed.playlistURL}]

+ {/if} + {/if} {#if embed.alt}
diff --git a/src/components/posts/FediSourceLink.svelte b/src/components/posts/FediSourceLink.svelte index 6f5e38c..00b39c5 100644 --- a/src/components/posts/FediSourceLink.svelte +++ b/src/components/posts/FediSourceLink.svelte @@ -1,14 +1,18 @@ - -
- View on {hostname} -
-
+{#if parsedURL} + +
+ View on {parsedURL.hostname} +
+
+{/if}