SECURITY: Sanitize d-popover attributes (#13958)

This commit is contained in:
Bianca Nenciu 2021-08-05 16:39:17 +03:00 committed by GitHub
parent bb2c48b065
commit 38199424bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 8 deletions

View File

@ -16,8 +16,7 @@ const D_ARROW_HEIGHT = 10;
const D_HORIZONTAL_MARGIN = 5; const D_HORIZONTAL_MARGIN = 5;
export const POPOVER_SELECTORS = export const POPOVER_SELECTORS = "[data-popover], [data-tooltip]";
"[data-html-popover], [data-html-tooltip], [data-popover], [data-tooltip]";
export function hidePopover() { export function hidePopover() {
getPopover().fadeOut().remove(); getPopover().fadeOut().remove();
@ -55,11 +54,6 @@ export function showPopover(event, options = {}) {
} }
function setPopoverHtmlContent($enteredElement, content) { function setPopoverHtmlContent($enteredElement, content) {
content =
content ||
$enteredElement.attr("data-html-popover") ||
$enteredElement.attr("data-html-tooltip");
replaceHtmlContent($enteredElement, content); replaceHtmlContent($enteredElement, content);
} }

View File

@ -136,6 +136,11 @@ module("Unit | Utility | sanitizer", function () {
); );
cooked(`<div dir="rtl">RTL text</div>`, `<div dir="rtl">RTL text</div>`); cooked(`<div dir="rtl">RTL text</div>`, `<div dir="rtl">RTL text</div>`);
cooked(
`<div data-value="<something>" data-html-value="<something>"></div>`,
`<div data-value="&lt;something&gt;"></div>`
);
}); });
test("ids on headings", function (assert) { test("ids on headings", function (assert) {

View File

@ -75,7 +75,9 @@ export function sanitize(text, allowLister) {
if ( if (
(forAttr && (forAttr &&
(forAttr.indexOf("*") !== -1 || forAttr.indexOf(value) !== -1)) || (forAttr.indexOf("*") !== -1 || forAttr.indexOf(value) !== -1)) ||
(name.indexOf("data-") === 0 && forTag["data-*"]) || (name.indexOf("data-html-") === -1 &&
name.indexOf("data-") === 0 &&
forTag["data-*"]) ||
(tag === "a" && (tag === "a" &&
name === "href" && name === "href" &&
hrefAllowed(value, extraHrefMatchers)) || hrefAllowed(value, extraHrefMatchers)) ||