From 7b4242fd3764df00fa862eeef1e0268dba98db3d Mon Sep 17 00:00:00 2001 From: "Jonas_sorgenfrei@yahoo.de" Date: Fri, 27 Dec 2024 14:19:33 +0100 Subject: [PATCH 1/3] implementing whitelisted protocols to allow configuring linkifiers in the settings.json --- app/common/config-schemata.ts | 1 + app/common/link-util.ts | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/common/config-schemata.ts b/app/common/config-schemata.ts index e2db7b80f..5cab99305 100644 --- a/app/common/config-schemata.ts +++ b/app/common/config-schemata.ts @@ -36,6 +36,7 @@ export const configSchemata = { useManualProxy: z.boolean(), useProxy: z.boolean(), useSystemProxy: z.boolean(), + whitelistedProtocols: z.string().array(), }; export const enterpriseConfigSchemata = { diff --git a/app/common/link-util.ts b/app/common/link-util.ts index bfd2157fa..ad338c4d8 100644 --- a/app/common/link-util.ts +++ b/app/common/link-util.ts @@ -3,10 +3,20 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; +import * as ConfigUtil from "./config-util.js" import {html} from "./html.js"; +/* Fetches the current protocolLaunchers from settings.json */ +const whitelistedProtocols = ConfigUtil.getConfigItem("whitelistedProtocols",[ + "http:", + "https:", + "mailto:", + "tel:", + "sip:", +]) + export async function openBrowser(url: URL): Promise { - if (["http:", "https:", "mailto:"].includes(url.protocol)) { + if (whitelistedProtocols.includes(url.protocol)) { await shell.openExternal(url.href); } else { // For security, indirect links to non-whitelisted protocols From 5efce77ef074b2aaede183bd57622086c6714766 Mon Sep 17 00:00:00 2001 From: "Jonas_sorgenfrei@yahoo.de" Date: Fri, 27 Dec 2024 14:22:46 +0100 Subject: [PATCH 2/3] add mising semicolons --- app/common/link-util.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/common/link-util.ts b/app/common/link-util.ts index ad338c4d8..b505c6584 100644 --- a/app/common/link-util.ts +++ b/app/common/link-util.ts @@ -3,7 +3,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import * as ConfigUtil from "./config-util.js" +import * as ConfigUtil from "./config-util.js"; import {html} from "./html.js"; /* Fetches the current protocolLaunchers from settings.json */ @@ -13,7 +13,7 @@ const whitelistedProtocols = ConfigUtil.getConfigItem("whitelistedProtocols",[ "mailto:", "tel:", "sip:", -]) +]); export async function openBrowser(url: URL): Promise { if (whitelistedProtocols.includes(url.protocol)) { From 168ceed3abd1b6987a4298f10c7f60f275a320d2 Mon Sep 17 00:00:00 2001 From: "Jonas_sorgenfrei@yahoo.de" Date: Fri, 27 Dec 2024 14:26:46 +0100 Subject: [PATCH 3/3] add space for pretty code --- app/common/link-util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/common/link-util.ts b/app/common/link-util.ts index b505c6584..87305e5e7 100644 --- a/app/common/link-util.ts +++ b/app/common/link-util.ts @@ -7,7 +7,7 @@ import * as ConfigUtil from "./config-util.js"; import {html} from "./html.js"; /* Fetches the current protocolLaunchers from settings.json */ -const whitelistedProtocols = ConfigUtil.getConfigItem("whitelistedProtocols",[ +const whitelistedProtocols = ConfigUtil.getConfigItem("whitelistedProtocols", [ "http:", "https:", "mailto:",