diff --git a/frontend/static/js/upload.js b/frontend/static/js/upload.js index b8ecd62a..beb33e3e 100644 --- a/frontend/static/js/upload.js +++ b/frontend/static/js/upload.js @@ -169,6 +169,21 @@ function _onUploadSuccess() { } } +/** + * Helper to sanitize strings before injecting into HTML. + * @param {string} str + * @returns {string} + */ +function _escapeHtml(str) { + if (!str) return ''; + return String(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + // ── Directory traversal helpers ─────────────────────────────────────────────── /** @@ -297,9 +312,10 @@ function processFiles(files, progressContainer, statusMessage) { const queueItems = fileArray.map((file) => { const row = document.createElement('div'); row.className = 'flex flex-col mb-2'; + const safeName = _escapeHtml(file.name); row.innerHTML = `