From 88d6ecb81614034d35eedbe72b6eae27a34b01ad Mon Sep 17 00:00:00 2001 From: BATTLEHAWK <154075059@qq.com> Date: Mon, 11 Oct 2021 20:04:13 +0800 Subject: [PATCH] ui: add xss filter to id attribute (#232) --- .../ui-default/backendlib/markdown-it-xss.js | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/ui-default/backendlib/markdown-it-xss.js b/packages/ui-default/backendlib/markdown-it-xss.js index ed71dcb66..bc7664335 100644 --- a/packages/ui-default/backendlib/markdown-it-xss.js +++ b/packages/ui-default/backendlib/markdown-it-xss.js @@ -24,17 +24,17 @@ const xss = new Xss.FilterXSS({ dd: [], del: ['datetime'], details: ['open'], - div: ['class'], + div: ['id','class'], dl: [], dt: [], em: [], font: ['color', 'size', 'face'], - h1: [], - h2: ['class'], - h3: [], - h4: [], - h5: [], - h6: [], + h1: ['id'], + h2: ['id','class'], + h3: ['id'], + h4: ['id'], + h5: ['id'], + h6: ['id'], header: [], hr: [], i: [], @@ -52,7 +52,7 @@ const xss = new Xss.FilterXSS({ sub: [], summary: [], sup: [], - strong: [], + strong: ['id'], table: ['width', 'border', 'align', 'valign'], tbody: ['align', 'valign'], td: ['width', 'rowspan', 'colspan', 'align', 'valign', 'bgcolor'], @@ -66,6 +66,10 @@ const xss = new Xss.FilterXSS({ var: [], video: ['autoplay', 'controls', 'loop', 'preload', 'src', 'height', 'width'], }, + safeAttrValue(tag, name, value) { + if (name === 'id') return `xss-id-${value}`; + return value; + }, }); function xssProtector(md) {