dompurify 3.0.10 → 3.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/purify.cjs.js +10 -4
- package/dist/purify.cjs.js.map +1 -1
- package/dist/purify.es.mjs +10 -4
- package/dist/purify.es.mjs.map +1 -1
- package/dist/purify.js +10 -4
- package/dist/purify.js.map +1 -1
- package/dist/purify.min.js +2 -2
- package/dist/purify.min.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG.
|
|
8
8
|
|
|
9
|
-
It's also very simple to use and get started with. DOMPurify was [started in February 2014](https://github.com/cure53/DOMPurify/commit/a630922616927373485e0e787ab19e73e3691b2b) and, meanwhile, has reached version **v3.0.
|
|
9
|
+
It's also very simple to use and get started with. DOMPurify was [started in February 2014](https://github.com/cure53/DOMPurify/commit/a630922616927373485e0e787ab19e73e3691b2b) and, meanwhile, has reached version **v3.0.11**.
|
|
10
10
|
|
|
11
11
|
DOMPurify is written in JavaScript and works in all modern browsers (Safari (10+), Opera (15+), Edge, Firefox and Chrome - as well as almost anything else using Blink, Gecko or WebKit). It doesn't break on MSIE or other legacy browsers. It simply does nothing.
|
|
12
12
|
|
|
13
|
-
**Note that [DOMPurify v2.4.
|
|
13
|
+
**Note that [DOMPurify v2.4.9](https://github.com/cure53/DOMPurify/releases/tag/2.4.9) is the latest version supporting MSIE. For important security updates compatible with MSIE, please use the [2.x branch](https://github.com/cure53/DOMPurify/tree/2.x).**
|
|
14
14
|
|
|
15
15
|
Our automated tests cover [19 different browsers](https://github.com/cure53/DOMPurify/blob/main/test/karma.custom-launchers.config.js#L5) right now, more to come. We also cover Node.js v16.x, v17.x, v18.x and v19.x, running DOMPurify on [jsdom](https://github.com/jsdom/jsdom). Older Node versions are known to work as well, but hey... no guarantees.
|
|
16
16
|
|
package/dist/purify.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @license DOMPurify 3.0.
|
|
1
|
+
/*! @license DOMPurify 3.0.11 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.11/LICENSE */
|
|
2
2
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
@@ -217,7 +217,7 @@ const ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205
|
|
|
217
217
|
);
|
|
218
218
|
|
|
219
219
|
const DOCTYPE_NAME = seal(/^html$/i);
|
|
220
|
-
const CUSTOM_ELEMENT = seal(/^[a-z][
|
|
220
|
+
const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
|
|
221
221
|
|
|
222
222
|
var EXPRESSIONS = /*#__PURE__*/Object.freeze({
|
|
223
223
|
__proto__: null,
|
|
@@ -284,7 +284,7 @@ function createDOMPurify() {
|
|
|
284
284
|
* Version label, exposed for easier checks
|
|
285
285
|
* if DOMPurify is up to date or not
|
|
286
286
|
*/
|
|
287
|
-
DOMPurify.version = '3.0.
|
|
287
|
+
DOMPurify.version = '3.0.11';
|
|
288
288
|
|
|
289
289
|
/**
|
|
290
290
|
* Array of elements that DOMPurify removed during sanitation.
|
|
@@ -911,7 +911,7 @@ function createDOMPurify() {
|
|
|
911
911
|
const _createNodeIterator = function _createNodeIterator(root) {
|
|
912
912
|
return createNodeIterator.call(root.ownerDocument || root, root,
|
|
913
913
|
// eslint-disable-next-line no-bitwise
|
|
914
|
-
NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION, null);
|
|
914
|
+
NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
|
|
915
915
|
};
|
|
916
916
|
|
|
917
917
|
/**
|
|
@@ -988,6 +988,12 @@ function createDOMPurify() {
|
|
|
988
988
|
return true;
|
|
989
989
|
}
|
|
990
990
|
|
|
991
|
+
/* Remove any ocurrence of processing instructions */
|
|
992
|
+
if (currentNode.nodeType === 7) {
|
|
993
|
+
_forceRemove(currentNode);
|
|
994
|
+
return true;
|
|
995
|
+
}
|
|
996
|
+
|
|
991
997
|
/* Remove element if anything forbids its presence */
|
|
992
998
|
if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
|
|
993
999
|
/* Check if we have a custom element to handle */
|