[在Angular中进行生产构建时,创建的main.xxxxxxxx.js包含代码
<img src="</style><img src=x onerror=alert(1)"//>
我们可以通过Ctrl + F进行查找。我已经确认了多个项目中的行为,包括样板项目。由于这一特定的代码行由于与XSS攻击有关而似乎是恶意的,因此有没有办法摆脱它?另外,如果有人出于某种目的或者是Angular的错误,有人可以解释为什么这条可疑线存在吗?
有人可以解释一下为什么有这个可疑之处吗?>
看起来像是作为消毒脚本插入的,您可以看到它being added here
inertBodyElement.innerHTML = '<svg><p><style><img src="</style><img src=x onerror=alert(1)//">';
并且该类具有描述
/** * This helper class is used to get hold of an inert tree of DOM elements containing dirty HTML * that needs sanitizing. * Depending upon browser support we must use one of three strategies for doing this. * Support: Safari 10.x -> XHR strategy * Support: Firefox -> DomParser strategy * Default: InertDocument strategy */
spec file引用的DOMPurify release似乎与Mozilla security bug有关。 DOMPurify发行说明状态:
。它本身不是一个漏洞。安装此最新版本的用户不受此错误影响随着DOMPurify解决问题并缓解该问题,通过不再信任Gecko的innerHTML实现。而不是document.implementation和doc.body.outerHTML,DOMPurify现在使用DOMParser功能在所有现代浏览器中都可用。
因此,这段代码是清理DOM以防止这种XSS攻击
有没有摆脱它的方法?
您不想摆脱它,这是一件好事