From 76b80a15119b5fbe19ec8b3329616c955a1e5af4 Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Thu, 1 Aug 2019 18:13:08 +0200 Subject: [PATCH] Perform case-insensitive comparison for international domain names Note: this uses `toLowerCase()` instead of doing proper case folding --- app/javascript/flavours/glitch/components/status_content.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/javascript/flavours/glitch/components/status_content.js b/app/javascript/flavours/glitch/components/status_content.js index e51cc8fd5..147c1d1b1 100644 --- a/app/javascript/flavours/glitch/components/status_content.js +++ b/app/javascript/flavours/glitch/components/status_content.js @@ -65,10 +65,11 @@ const isLinkMisleading = (link, checkUrlLike = true) => { } // The link hasn't been recognized, maybe it features an international domain name - const hostname = decodeIDNA(targetURL.hostname); + const hostname = decodeIDNA(targetURL.hostname).normalize('NFKC'); const host = targetURL.host.replace(targetURL.hostname, hostname); const origin = targetURL.origin.replace(targetURL.host, host); - if (textMatchesTarget(linkText, origin, host)) { + const text = linkText.normalize('NFKC'); + if (textMatchesTarget(text, origin, host) || textMatchesTarget(text.toLowerCase(), origin, host)) { return false; }