From 8258edea9c3791b50f9767334c71992dcdc10e44 Mon Sep 17 00:00:00 2001 From: Javier Marcos <1271349+javuto@users.noreply.github.com> Date: Mon, 23 Feb 2026 11:55:52 +0100 Subject: [PATCH 1/3] Sanitized query in on-demand query list --- cmd/admin/static/js/query.js | 20 ++++++++++++++++++-- cmd/admin/templates/queries.html | 31 ++++++++++++++++++++++--------- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/cmd/admin/static/js/query.js b/cmd/admin/static/js/query.js index b09ebfca..155900c8 100644 --- a/cmd/admin/static/js/query.js +++ b/cmd/admin/static/js/query.js @@ -117,9 +117,25 @@ function confirmDeleteSavedQueries(_names, _url) { $("#confirmModal").modal(); } +function escapeHTML(value) { + return String(value).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); +} + +function safeHref(href) { + const s = String(href || "").trim(); + const lower = s.toLowerCase(); + if (!s || lower.startsWith("javascript:") || lower.startsWith("data:") || lower.startsWith("vbscript:")) { + return "#"; + } + return s; +} + function queryResultLink(link, query, url) { - var external_link = ''; - return '' + query + " - " + external_link + " "; + var safeQuery = escapeHTML(query); + var safeURL = escapeHTML(safeHref(url)); + var safeLink = escapeHTML(safeHref(link)); + var external_link = ''; + return '' + safeQuery + " - " + external_link + " "; } function toggleSaveQuery() { diff --git a/cmd/admin/templates/queries.html b/cmd/admin/templates/queries.html index 3708d5e5..67c5237a 100644 --- a/cmd/admin/templates/queries.html +++ b/cmd/admin/templates/queries.html @@ -1,4 +1,4 @@ - + {{ $metadata := .Metadata }} {{ $leftmeta := .LeftMetadata }} {{ template "page-head" . }} @@ -13,9 +13,11 @@