沙盒机制的前世今生
介绍为什么油猴需要沙盒环境
危险
本文存在严重性事实漏洞,与实际不符,但有助于理解设计
初代油猴之殇
大概二十年前,早期油猴存在一个重大的安全漏洞,即默认所有的网页都是安全并且可靠的。
当时的执行机制是在网页上创建一个script
元素,插入到页面之中,当脚本执行完毕再删除元素来清理。
简洁的说就是将脚本直接插入到网页当中。
这个机制看似完美,但其实暗藏了三个致命的漏洞
1. 窃取用户脚本代码
当油猴插入脚本的时候会触发DOMNodeInserted事件,所以如果我们使用下列代码
警告
目前MutationEvent已被废除,保留该段仅供学习思路
document.addEventListener("DOMNodeInserted",func,true);
这样,当油猴插入脚本的时候会触发网页的恶意代码,并且窃取油猴脚本的代码。