diff options
| author | Jo-Philipp Wich <jo@mein.io> | 2021-12-23 17:06:09 +0100 |
|---|---|---|
| committer | Jo-Philipp Wich <jo@mein.io> | 2021-12-23 17:10:32 +0100 |
| commit | ad33852de03b28865505ecdd30cdc8c24f24417c (patch) | |
| tree | a8562d397542466053c5df3c7d625b73c6cb7484 | |
| parent | e2a873196a139b312b875fe8337d2ba35ab9083f (diff) | |
luci-base: form.js: do not execute embedded script code in stripTags()
Instead of relying on .innerHTML which executes embedded script code to
parse a given HTML fragment, use dom.parse() which utilizies DOMParser()
internally in order to extract textContent in a safe manner.
Fixes: FS#4199
Ref: https://bugs.openwrt.org/index.php?do=details&task_id=4199
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 993151504e8e810c083d3257555bdcdc2f00673a)
| -rw-r--r-- | modules/luci-base/htdocs/luci-static/resources/form.js | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/form.js b/modules/luci-base/htdocs/luci-static/resources/form.js index 72b4173493..92c53253bb 100644 --- a/modules/luci-base/htdocs/luci-static/resources/form.js +++ b/modules/luci-base/htdocs/luci-static/resources/form.js @@ -279,7 +279,8 @@ var CBIAbstractElement = baseclass.extend(/** @lends LuCI.form.AbstractElement.p if (typeof(s) == 'string' && !s.match(/[<>]/)) return s; - var x = E('div', {}, s); + var x = dom.parse('<div>' + s + '</div>'); + return x.textContent || x.innerText || ''; }, |
