Socket
Socket
Sign inDemoInstall

dompurify

Package Overview
Dependencies
0
Maintainers
2
Versions
118
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.8.6 to 0.8.7

2

dist/purify.min.js

@@ -1,2 +0,2 @@

(function(e){"use strict";var t=typeof window==="undefined"?null:window;if(typeof define==="function"&&define.amd){define(function(){return e(t)})}else if(typeof module!=="undefined"){module.exports=e(t)}else{t.DOMPurify=e(t)}})(function e(t){"use strict";var r=function(t){return e(t)};r.version="0.8.6";r.removed=[];if(!t||!t.document||t.document.nodeType!==9){r.isSupported=false;return r}var n=t.document;var a=n;var i=t.DocumentFragment;var o=t.HTMLTemplateElement;var l=t.Node;var s=t.NodeFilter;var f=t.NamedNodeMap||t.MozNamedAttrMap;var c=t.Text;var u=t.Comment;if(typeof o==="function"){var d=n.createElement("template");if(d.content&&d.content.ownerDocument){n=d.content.ownerDocument}}var m=n.implementation;var p=n.createNodeIterator;var v=n.getElementsByTagName;var h=n.createDocumentFragment;var g=a.importNode;var y={};r.isSupported=typeof m.createHTMLDocument!=="undefined"&&n.documentMode!==9;var T=function(e,t){var r=t.length;while(r--){if(typeof t[r]==="string"){t[r]=t[r].toLowerCase()}e[t[r]]=true}return e};var b=function(e){var t={};var r;for(r in e){if(e.hasOwnProperty(r)){t[r]=e[r]}}return t};var A=null;var x=T({},["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr","svg","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","switch","symbol","text","textpath","title","tref","tspan","view","vkern","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmuliscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mpspace","msqrt","mystyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","#text"]);var k=null;var w=T({},["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","coords","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","span","srclang","start","src","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns","accent-height","accumulate","additivive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mode","min","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","surfacescale","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","u1","u2","unicode","values","viewbox","visibility","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","y","y1","y2","z","zoomandpan","accent","accentunder","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","display","displaystyle","fence","frame","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]);var E=null;var N=null;var O=true;var S=true;var D=false;var L=false;var M=false;var _=/\{\{[\s\S]*|[\s\S]*\}\}/gm;var C=/<%[\s\S]*|[\s\S]*%>/gm;var R=false;var z=false;var F=false;var H=false;var I=false;var B=true;var j=true;var W=T({},["audio","head","math","script","style","svg","video"]);var G=T({},["audio","video","img","source","image"]);var U=T({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]);var q=null;var P=n.createElement("form");var V=function(e){if(typeof e!=="object"){e={}}A="ALLOWED_TAGS"in e?T({},e.ALLOWED_TAGS):x;k="ALLOWED_ATTR"in e?T({},e.ALLOWED_ATTR):w;E="FORBID_TAGS"in e?T({},e.FORBID_TAGS):{};N="FORBID_ATTR"in e?T({},e.FORBID_ATTR):{};O=e.ALLOW_ARIA_ATTR!==false;S=e.ALLOW_DATA_ATTR!==false;D=e.ALLOW_UNKNOWN_PROTOCOLS||false;L=e.SAFE_FOR_JQUERY||false;M=e.SAFE_FOR_TEMPLATES||false;R=e.WHOLE_DOCUMENT||false;F=e.RETURN_DOM||false;H=e.RETURN_DOM_FRAGMENT||false;I=e.RETURN_DOM_IMPORT||false;z=e.FORCE_BODY||false;B=e.SANITIZE_DOM!==false;j=e.KEEP_CONTENT!==false;if(M){S=false}if(H){F=true}if(e.ADD_TAGS){if(A===x){A=b(A)}T(A,e.ADD_TAGS)}if(e.ADD_ATTR){if(k===w){k=b(k)}T(k,e.ADD_ATTR)}if(e.ADD_URI_SAFE_ATTR){T(U,e.ADD_URI_SAFE_ATTR)}if(j){A["#text"]=true}if(Object&&"freeze"in Object){Object.freeze(e)}q=e};var Y=function(e){r.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=""}};var K=function(e,t){r.removed.push({attribute:t.getAttributeNode(e),from:t});t.removeAttribute(e)};var $=function(e){var t,r;if(z){e="<remove></remove>"+e}if(!t||!t.documentElement){t=m.createHTMLDocument("");r=t.body;r.parentNode.removeChild(r.parentNode.firstElementChild);r.outerHTML=e}if(typeof t.getElementsByTagName==="function"){return t.getElementsByTagName(R?"html":"body")[0]}return v.call(t,R?"html":"body")[0]};var J=function(e){return p.call(e.ownerDocument||e,e,s.SHOW_ELEMENT|s.SHOW_COMMENT|s.SHOW_TEXT,function(){return s.FILTER_ACCEPT},false)};var Q=function(e){if(e instanceof c||e instanceof u){return false}if(typeof e.nodeName!=="string"||typeof e.textContent!=="string"||typeof e.removeChild!=="function"||!(e.attributes instanceof f)||typeof e.removeAttribute!=="function"||typeof e.setAttribute!=="function"){return true}return false};var X=function(e){return typeof l==="object"?e instanceof l:e&&typeof e==="object"&&typeof e.nodeType==="number"&&typeof e.nodeName==="string"};var Z=function(e){var t,n;le("beforeSanitizeElements",e,null);if(Q(e)){Y(e);return true}t=e.nodeName.toLowerCase();le("uponSanitizeElement",e,{tagName:t,allowedTags:A});if(!A[t]||E[t]){if(j&&!W[t]&&typeof e.insertAdjacentHTML==="function"){try{e.insertAdjacentHTML("AfterEnd",e.innerHTML)}catch(a){}}Y(e);return true}if(L&&!e.firstElementChild&&(!e.content||!e.content.firstElementChild)&&/</g.test(e.textContent)){r.removed.push({element:e.cloneNode()});e.innerHTML=e.textContent.replace(/</g,"&lt;")}if(M&&e.nodeType===3){n=e.textContent;n=n.replace(_," ");n=n.replace(C," ");if(e.textContent!==n){r.removed.push({element:e.cloneNode()});e.textContent=n}}le("afterSanitizeElements",e,null);return false};var ee=/^data-[\-\w.\u00B7-\uFFFF]/;var te=/^aria-[\-\w]+$/;var re=/^(?:(?:(?:f|ht)tps?|mailto|tel):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i;var ne=/^(?:\w+script|data):/i;var ae=/[\x00-\x20\xA0\u1680\u180E\u2000-\u2029\u205f\u3000]/g;var ie=function(e){var a,i,o,l,s,f,c,u;le("beforeSanitizeAttributes",e,null);f=e.attributes;if(!f){return}c={attrName:"",attrValue:"",keepAttr:true,allowedAttributes:k};u=f.length;while(u--){a=f[u];i=a.name;o=a.value.trim();l=i.toLowerCase();c.attrName=l;c.attrValue=o;c.keepAttr=true;le("uponSanitizeAttribute",e,c);o=c.attrValue;if(l==="name"&&e.nodeName==="IMG"&&f.id){s=f.id;f=Array.prototype.slice.apply(f);K("id",e);K(i,e);if(f.indexOf(s)>u){e.setAttribute("id",s.value)}}else if(e.nodeName==="INPUT"&&l==="type"&&o==="file"&&(k[l]||!N[l])){continue}else{if(i==="id"){e.setAttribute(i,"")}K(i,e)}if(!c.keepAttr){continue}if(B&&(l==="id"||l==="name")&&(o in t||o in n||o in P)){continue}if(M){o=o.replace(_," ");o=o.replace(C," ")}if(S&&ee.test(l)){}else if(O&&te.test(l)){}else if(!k[l]||N[l]){continue}else if(U[l]){}else if(re.test(o.replace(ae,""))){}else if((l==="src"||l==="xlink:href")&&o.indexOf("data:")===0&&G[e.nodeName.toLowerCase()]){}else if(D&&!ne.test(o.replace(ae,""))){}else if(!o){}else{continue}try{e.setAttribute(i,o);r.removed.pop()}catch(d){}}le("afterSanitizeAttributes",e,null)};var oe=function(e){var t;var r=J(e);le("beforeSanitizeShadowDOM",e,null);while(t=r.nextNode()){le("uponSanitizeShadowNode",t,null);if(Z(t)){continue}if(t.content instanceof i){oe(t.content)}ie(t)}le("afterSanitizeShadowDOM",e,null)};var le=function(e,t,n){if(!y[e]){return}y[e].forEach(function(e){e.call(r,t,n,q)})};r.sanitize=function(e,n){var o,s,f,c,u,d;if(!e){e="<!-->"}if(typeof e!=="string"&&!X(e)){if(typeof e.toString!=="function"){throw new TypeError("toString is not a function")}else{e=e.toString()}}if(!r.isSupported){if(typeof t.toStaticHTML==="object"||typeof t.toStaticHTML==="function"){if(typeof e==="string"){return t.toStaticHTML(e)}else if(X(e)){return t.toStaticHTML(e.outerHTML)}}return e}V(n);r.removed=[];if(e instanceof l){o=$("<!-->");s=o.ownerDocument.importNode(e,true);if(s.nodeType===1&&s.nodeName==="BODY"){o=s}else{o.appendChild(s)}}else{if(!F&&!R&&e.indexOf("<")===-1){return e}o=$(e);if(!o){return F?null:""}}if(z){Y(o.firstChild)}u=J(o);while(f=u.nextNode()){if(f.nodeType===3&&f===c){continue}if(Z(f)){continue}if(f.content instanceof i){oe(f.content)}ie(f);c=f}if(F){if(H){d=h.call(o.ownerDocument);while(o.firstChild){d.appendChild(o.firstChild)}}else{d=o}if(I){d=g.call(a,d,true)}return d}return R?o.outerHTML:o.innerHTML};r.addHook=function(e,t){if(typeof t!=="function"){return}y[e]=y[e]||[];y[e].push(t)};r.removeHook=function(e){if(y[e]){y[e].pop()}};r.removeHooks=function(e){if(y[e]){y[e]=[]}};r.removeAllHooks=function(){y={}};return r});
(function(e){"use strict";var t=typeof window==="undefined"?null:window;if(typeof define==="function"&&define.amd){define(function(){return e(t)})}else if(typeof module!=="undefined"){module.exports=e(t)}else{t.DOMPurify=e(t)}})(function e(t){"use strict";var r=function(t){return e(t)};r.version="0.8.7";r.removed=[];if(!t||!t.document||t.document.nodeType!==9){r.isSupported=false;return r}var n=t.document;var a=n;var i=t.DocumentFragment;var o=t.HTMLTemplateElement;var l=t.Node;var s=t.NodeFilter;var f=t.NamedNodeMap||t.MozNamedAttrMap;var c=t.Text;var u=t.Comment;var d=t.DOMParser;var m=false;if(typeof o==="function"){var p=n.createElement("template");if(p.content&&p.content.ownerDocument){n=p.content.ownerDocument}}var v=n.implementation;var h=n.createNodeIterator;var g=n.getElementsByTagName;var y=n.createDocumentFragment;var T=a.importNode;var b={};r.isSupported=typeof v.createHTMLDocument!=="undefined"&&n.documentMode!==9;var A=function(e,t){var r=t.length;while(r--){if(typeof t[r]==="string"){t[r]=t[r].toLowerCase()}e[t[r]]=true}return e};var x=function(e){var t={};var r;for(r in e){if(e.hasOwnProperty(r)){t[r]=e[r]}}return t};var k=null;var w=A({},["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr","svg","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","switch","symbol","text","textpath","title","tref","tspan","view","vkern","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmuliscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mpspace","msqrt","mystyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","#text"]);var E=null;var S=A({},["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","coords","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","span","srclang","start","src","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns","accent-height","accumulate","additivive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mode","min","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","surfacescale","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","u1","u2","unicode","values","viewbox","visibility","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","y","y1","y2","z","zoomandpan","accent","accentunder","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","display","displaystyle","fence","frame","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]);var N=null;var O=null;var D=true;var M=true;var L=false;var _=false;var C=false;var R=/\{\{[\s\S]*|[\s\S]*\}\}/gm;var z=/<%[\s\S]*|[\s\S]*%>/gm;var F=false;var H=false;var I=false;var j=false;var B=false;var W=true;var G=true;var P=A({},["audio","head","math","script","style","template","svg","video"]);var U=A({},["audio","video","img","source","image"]);var q=A({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]);var V=null;var Y=n.createElement("form");var K=function(e){if(typeof e!=="object"){e={}}k="ALLOWED_TAGS"in e?A({},e.ALLOWED_TAGS):w;E="ALLOWED_ATTR"in e?A({},e.ALLOWED_ATTR):S;N="FORBID_TAGS"in e?A({},e.FORBID_TAGS):{};O="FORBID_ATTR"in e?A({},e.FORBID_ATTR):{};D=e.ALLOW_ARIA_ATTR!==false;M=e.ALLOW_DATA_ATTR!==false;L=e.ALLOW_UNKNOWN_PROTOCOLS||false;_=e.SAFE_FOR_JQUERY||false;C=e.SAFE_FOR_TEMPLATES||false;F=e.WHOLE_DOCUMENT||false;I=e.RETURN_DOM||false;j=e.RETURN_DOM_FRAGMENT||false;B=e.RETURN_DOM_IMPORT||false;H=e.FORCE_BODY||false;W=e.SANITIZE_DOM!==false;G=e.KEEP_CONTENT!==false;if(C){M=false}if(j){I=true}if(e.ADD_TAGS){if(k===w){k=x(k)}A(k,e.ADD_TAGS)}if(e.ADD_ATTR){if(E===S){E=x(E)}A(E,e.ADD_ATTR)}if(e.ADD_URI_SAFE_ATTR){A(q,e.ADD_URI_SAFE_ATTR)}if(G){k["#text"]=true}if(Object&&"freeze"in Object){Object.freeze(e)}V=e};var $=function(e){r.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=""}};var J=function(e,t){r.removed.push({attribute:t.getAttributeNode(e),from:t});t.removeAttribute(e)};var Q=function(e){var t,r;if(H){e="<remove></remove>"+e}if(m){try{t=(new d).parseFromString(e,"text/html")}catch(n){}}if(!t||!t.documentElement){t=v.createHTMLDocument("");r=t.body;r.parentNode.removeChild(r.parentNode.firstElementChild);r.outerHTML=e}return g.call(t,F?"html":"body")[0]};if(r.isSupported){(function(){var e=Q('<svg><p><style><img src="</style><img src=x onerror=alert(1)//">');if(e.getElementsByTagName("img")[0].hasAttribute("onerror")){m=true}})()}var X=function(e){return h.call(e.ownerDocument||e,e,s.SHOW_ELEMENT|s.SHOW_COMMENT|s.SHOW_TEXT,function(){return s.FILTER_ACCEPT},false)};var Z=function(e){if(e instanceof c||e instanceof u){return false}if(typeof e.nodeName!=="string"||typeof e.textContent!=="string"||typeof e.removeChild!=="function"||!(e.attributes instanceof f)||typeof e.removeAttribute!=="function"||typeof e.setAttribute!=="function"){return true}return false};var ee=function(e){return typeof l==="object"?e instanceof l:e&&typeof e==="object"&&typeof e.nodeType==="number"&&typeof e.nodeName==="string"};var te=function(e){var t,n;fe("beforeSanitizeElements",e,null);if(Z(e)){$(e);return true}t=e.nodeName.toLowerCase();fe("uponSanitizeElement",e,{tagName:t,allowedTags:k});if(!k[t]||N[t]){if(G&&!P[t]&&typeof e.insertAdjacentHTML==="function"){try{e.insertAdjacentHTML("AfterEnd",e.innerHTML)}catch(a){}}$(e);return true}if(_&&!e.firstElementChild&&(!e.content||!e.content.firstElementChild)&&/</g.test(e.textContent)){r.removed.push({element:e.cloneNode()});e.innerHTML=e.textContent.replace(/</g,"&lt;")}if(C&&e.nodeType===3){n=e.textContent;n=n.replace(R," ");n=n.replace(z," ");if(e.textContent!==n){r.removed.push({element:e.cloneNode()});e.textContent=n}}fe("afterSanitizeElements",e,null);return false};var re=/^data-[\-\w.\u00B7-\uFFFF]/;var ne=/^aria-[\-\w]+$/;var ae=/^(?:(?:(?:f|ht)tps?|mailto|tel):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i;var ie=/^(?:\w+script|data):/i;var oe=/[\x00-\x20\xA0\u1680\u180E\u2000-\u2029\u205f\u3000]/g;var le=function(e){var a,i,o,l,s,f,c,u;fe("beforeSanitizeAttributes",e,null);f=e.attributes;if(!f){return}c={attrName:"",attrValue:"",keepAttr:true,allowedAttributes:E};u=f.length;while(u--){a=f[u];i=a.name;o=a.value.trim();l=i.toLowerCase();c.attrName=l;c.attrValue=o;c.keepAttr=true;fe("uponSanitizeAttribute",e,c);o=c.attrValue;if(l==="name"&&e.nodeName==="IMG"&&f.id){s=f.id;f=Array.prototype.slice.apply(f);J("id",e);J(i,e);if(f.indexOf(s)>u){e.setAttribute("id",s.value)}}else if(e.nodeName==="INPUT"&&l==="type"&&o==="file"&&(E[l]||!O[l])){continue}else{if(i==="id"){e.setAttribute(i,"")}J(i,e)}if(!c.keepAttr){continue}if(W&&(l==="id"||l==="name")&&(o in t||o in n||o in Y)){continue}if(C){o=o.replace(R," ");o=o.replace(z," ")}if(M&&re.test(l)){}else if(D&&ne.test(l)){}else if(!E[l]||O[l]){continue}else if(q[l]){}else if(ae.test(o.replace(oe,""))){}else if((l==="src"||l==="xlink:href")&&o.indexOf("data:")===0&&U[e.nodeName.toLowerCase()]){}else if(L&&!ie.test(o.replace(oe,""))){}else if(!o){}else{continue}try{e.setAttribute(i,o);r.removed.pop()}catch(d){}}fe("afterSanitizeAttributes",e,null)};var se=function(e){var t;var r=X(e);fe("beforeSanitizeShadowDOM",e,null);while(t=r.nextNode()){fe("uponSanitizeShadowNode",t,null);if(te(t)){continue}if(t.content instanceof i){se(t.content)}le(t)}fe("afterSanitizeShadowDOM",e,null)};var fe=function(e,t,n){if(!b[e]){return}b[e].forEach(function(e){e.call(r,t,n,V)})};r.sanitize=function(e,n){var o,s,f,c,u,d;if(!e){e="<!-->"}if(typeof e!=="string"&&!ee(e)){if(typeof e.toString!=="function"){throw new TypeError("toString is not a function")}else{e=e.toString()}}if(!r.isSupported){if(typeof t.toStaticHTML==="object"||typeof t.toStaticHTML==="function"){if(typeof e==="string"){return t.toStaticHTML(e)}else if(ee(e)){return t.toStaticHTML(e.outerHTML)}}return e}K(n);r.removed=[];if(e instanceof l){o=Q("<!-->");s=o.ownerDocument.importNode(e,true);if(s.nodeType===1&&s.nodeName==="BODY"){o=s}else{o.appendChild(s)}}else{if(!I&&!F&&e.indexOf("<")===-1){return e}o=Q(e);if(!o){return I?null:""}}if(H){$(o.firstChild)}u=X(o);while(f=u.nextNode()){if(f.nodeType===3&&f===c){continue}if(te(f)){continue}if(f.content instanceof i){se(f.content)}le(f);c=f}if(I){if(j){d=y.call(o.ownerDocument);while(o.firstChild){d.appendChild(o.firstChild)}}else{d=o}if(B){d=T.call(a,d,true)}return d}return F?o.outerHTML:o.innerHTML};r.addHook=function(e,t){if(typeof t!=="function"){return}b[e]=b[e]||[];b[e].push(t)};r.removeHook=function(e){if(b[e]){b[e].pop()}};r.removeHooks=function(e){if(b[e]){b[e]=[]}};r.removeAllHooks=function(){b={}};return r});
//# sourceMappingURL=./dist/purify.min.js.map

@@ -44,3 +44,3 @@ {

"description": "DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It's written in JavaScript and works in all modern browsers (Safari, Opera (15+), Internet Explorer (10+), Firefox and Chrome - as well as almost anything else using Blink or WebKit). DOMPurify is written by security people who have vast background in web attacks and XSS. Fear not.",
"version": "0.8.6",
"version": "0.8.7",
"main": "src/purify.js",

@@ -47,0 +47,0 @@ "directories": {

@@ -11,3 +11,3 @@ # DOMPurify [![Bower version](https://badge.fury.io/bo/dompurify.svg)](http://badge.fury.io/bo/dompurify) · [![npm version](https://badge.fury.io/js/dompurify.svg)](http://badge.fury.io/js/dompurify) · [![Build Status](https://travis-ci.org/cure53/DOMPurify.svg)](https://travis-ci.org/cure53/DOMPurify) · [![Downloads](https://img.shields.io/npm/dm/dompurify.svg)](https://www.npmjs.com/package/dompurify)

Our automated tests cover [12 different browsers](https://github.com/cure53/DOMPurify/blob/master/test/karma.conf.js#L153) right now. We also cover Node.js v4.0.0, v5.0.0 and v6.0.0, running DOMPurify on [jsdom](https://github.com/tmpvar/jsdom).
Our automated tests cover [16 different browsers](https://github.com/cure53/DOMPurify/blob/master/test/karma.conf.js#L185) right now. We also cover Node.js v4.0.0, v5.0.0 and v6.0.0, running DOMPurify on [jsdom](https://github.com/tmpvar/jsdom).

@@ -14,0 +14,0 @@ DOMPurify is written by security people who have vast background in web attacks and XSS. Fear not. For more details please also read about our [Security Goals & Threat Model](https://github.com/cure53/DOMPurify/wiki/Security-Goals-&-Threat-Model)

@@ -24,3 +24,3 @@ ;(function(factory) {

*/
DOMPurify.version = '0.8.6';
DOMPurify.version = '0.8.7';

@@ -49,2 +49,4 @@ /**

var Comment = window.Comment;
var DOMParser = window.DOMParser;
var useDOMParser = false; // See comment below

@@ -241,3 +243,3 @@ // As per issue #47, the web-components registry is inherited by a

/* Decide if all elements (e.g. style, script) must be children of
/* Decide if all elements (e.g. style, script) must be children of
* document.body. By default, browsers might move them to document.head */

@@ -268,3 +270,3 @@ var FORCE_BODY = false;

var FORBID_CONTENTS = _addToSet({}, [
'audio', 'head', 'math', 'script', 'style', 'svg', 'video'
'audio', 'head', 'math', 'script', 'style', 'template', 'svg', 'video'
]);

@@ -396,3 +398,4 @@

var doc, body;
/* Fill body with bogus element */
if (FORCE_BODY) {

@@ -402,2 +405,11 @@ dirty = '<remove></remove>' + dirty;

/* Use DOMParser to workaround Firefox bug (see comment below) */
if (useDOMParser) {
try {
doc = new DOMParser().parseFromString(dirty, 'text/html');
} catch (e) {}
}
/* Otherwise use createHTMLDocument, because DOMParser is unsafe in
Safari (see comment below) */
if (!doc || !doc.documentElement) {

@@ -411,6 +423,2 @@ doc = implementation.createHTMLDocument('');

/* Work on whole document or just its body */
if (typeof doc.getElementsByTagName === 'function') {
return doc.getElementsByTagName(
WHOLE_DOCUMENT ? 'html' : 'body')[0];
}
return getElementsByTagName.call(doc,

@@ -420,2 +428,24 @@ WHOLE_DOCUMENT ? 'html' : 'body')[0];

// Safari 10.1+ (unfixed as of time of writing) has a catastrophic bug in
// its implementation of DOMParser such that the following executes the
// JavaScript:
//
// new DOMParser()
// .parseFromString('<svg onload=alert(document.domain)>', 'text/html');
//
// However, Firefox uses a different parser for innerHTML rather than
// DOMParser (see https://bugzilla.mozilla.org/show_bug.cgi?id=1205631)
// which means that you *must* use DOMParser, otherwise the output may
// not be safe if used in a document.write context later.
//
// So we feature detect the Firefox bug and use the DOMParser if necessary.
if (DOMPurify.isSupported) {
(function () {
var doc = _initDocument('<svg><p><style><img src="</style><img src=x onerror=alert(1)//">');
if (doc.getElementsByTagName('img')[0].hasAttribute('onerror')) {
useDOMParser = true;
}
}());
}
/**

@@ -608,12 +638,11 @@ * _createIterator

} else if (
// This works around a bug in Safari, where input[type=file]
// This works around a bug in Safari, where input[type=file]
// cannot be dynamically set after type has been removed
currentNode.nodeName === 'INPUT' && lcName === 'type' &&
currentNode.nodeName === 'INPUT' && lcName === 'type' &&
value === 'file' && (ALLOWED_ATTR[lcName] || !FORBID_ATTR[lcName])) {
continue;
} else {
// This avoids a crash in Safari v9.0 with double-ids.
// The trick is to first set the id to be empty and then to
// remove the attriubute
// remove the attribute
if (name === 'id') {

@@ -804,3 +833,3 @@ currentNode.setAttribute(name, '');

} else {
body.appendChild( importedNode );
body.appendChild(importedNode);
}

@@ -807,0 +836,0 @@ } else {

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc