通过Shadow Element添加的“未授权”存在的漏洞

“未授权”文字是通过Shadow Element来实现,并通过设置成private来阻止外界对其内容的修改。这种方案看似无懈可击,但还有一种方法来实现隐藏这些文字。那就是在外部内容渲染前,劫持attachShadow接口调用,向其注入隐藏这些文字的样式代码。代码如下:

<script>
let originShadow = Element.prototype.attachShadow;
Element.prototype.attachShadow = function (...args) {
	const shadowRoot = originShadow.call(this, ...args);
	let style = document.createElement("style");
	style.innerHTML = "div { display: none !important; }";
	shadowRoot.appendChild(style);
	return shadowRoot;
};
</script>



© 2016-2024 阿尔佛 aerfo.com | 豫ICP备17044542号 | 豫公网安备 41010602000172