From 6cee8ebe1aa48d9efa08188c4aea32ed7ae1dcf8 Mon Sep 17 00:00:00 2001 From: Eauldane Date: Wed, 3 Dec 2025 22:09:18 +0000 Subject: [PATCH] Improve URI validation beyond just scheme validation --- .../Settings/Widgets/ThirdRepoSettingsEntry.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Dalamud/Interface/Internal/Windows/Settings/Widgets/ThirdRepoSettingsEntry.cs b/Dalamud/Interface/Internal/Windows/Settings/Widgets/ThirdRepoSettingsEntry.cs index 1086a6a12..7a64f483e 100644 --- a/Dalamud/Interface/Internal/Windows/Settings/Widgets/ThirdRepoSettingsEntry.cs +++ b/Dalamud/Interface/Internal/Windows/Settings/Widgets/ThirdRepoSettingsEntry.cs @@ -269,8 +269,20 @@ internal class ThirdRepoSettingsEntry : SettingsEntry } private static bool ValidThirdPartyRepoUrl(string url) - => Uri.TryCreate(url, UriKind.Absolute, out var uriResult) - && (uriResult.Scheme == Uri.UriSchemeHttps || uriResult.Scheme == Uri.UriSchemeHttp); + { + if (!Uri.TryCreate(url, UriKind.Absolute, out var uriResult)) + return false; + + if (uriResult.Scheme != Uri.UriSchemeHttps && uriResult.Scheme != Uri.UriSchemeHttp) + return false; + + if (string.IsNullOrWhiteSpace(uriResult.Host)) + return false; + + var hostNameType = Uri.CheckHostName(uriResult.Host); + return hostNameType != UriHostNameType.Unknown + && Uri.IsWellFormedUriString(url, UriKind.Absolute); + } private bool ValidateTempRepoInput() {