上一主题 下一主题
返回列表 发新帖

关于油猴沙箱不同浏览器的区别

[复制链接]

62

主题

353

帖子

619

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
619
发表于 2021-2-5 00:38:16 | 显示全部楼层 | 阅读模式

简略翻译

请参阅Chrome用户脚本是否与Greasemonkey脚本一样具有隔离?” Chrome用户脚本和Greasemonkey脚本均与页面的javascript隔离。这样做是为了帮助您避免被黑客入侵,但同时也减少了冲突和意外。

但是每种浏览器使用的方法是不同的

FireFox

从1.0开始除grant none外,在XPCNativeWrapper沙箱中运行脚本(这里版本号可能存疑,不同的文章版本号不同)

从2012年8月的1.0版开始,Greasemonkey支持两种模式:具有可用于脚本的特权API的旧模式,以及较新的无特权模式。

默认情况下,将脚本包含在匿名函数中

提供unsafewindow访问原网页的javascript功能,请注意,恶意网站作者可能会根据unsafewindow获取脚本函数使用权提升自身权限

Chrome

在isolated world(暂且称之为隔离沙箱)中运行脚本

默认情况下,将脚本包含在匿名函数中

会严格阻止脚本对页面js的访问,同样,也会严格阻止页面对脚本的访问

关于早期绕过的方法可以参考:https://bbs.tampermonkey.net.cn/thread-268-1-1.html

现在,chrome最新版本提供了一个名为unsafewindow的对象,实现了极其有限的使用性,但是这个对象不提供对页面js的访问权限

他的window作用域与脚本作用域相同,并且不再页面js作用域中

关于绕过Chrome的访问权限的三种方法

第一种参考https://bbs.tampermonkey.net.cn/thread-268-1-1.html

第二种

因为虽然执行环境是隔离的,但是dom树是共用的

创建script元素是在原始网页执行环境

延时是因为为了保证网页的完整加载再进行执行

setTimeout(function() {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.innerHTML = "document.body.setAttribute('data-fp', fp);";
    document.head.appendChild(script);
    document.head.removeChild(script);

    console.log(document.body.getAttribute('data-fp'));
}, 1000);

第三种是通过href执行js代码 通过设置href来执行js脚本获取数据

setTimeout(function() {
    location.href = "javascript:document.body.setAttribute('data-fp', fp);";
    setTimeout(function() {
        console.log(document.body.getAttribute('data-fp'));
    }, 0);
}, 1000);

参考文章

Why is window (and unsafeWindow) not the same from a userscript as from a tag?

https://stackoverflow.com/questions/10824697/why-is-window-and-unsafewindow-not-the-same-from-a-userscript-as-from-a-scrip

在Chrome插件中访问原始网页中的变量 https://www.keakon.net/2011/11/02/%E5%9C%A8Chrome%E6%8F%92%E4%BB%B6%E4%B8%AD%E8%AE%BF%E9%97%AE%E5%8E%9F%E5%A7%8B%E7%BD%91%E9%A1%B5%E4%B8%AD%E7%9A%84%E5%8F%98%E9%87%8F

回复

使用道具 举报

53

主题

189

帖子

310

积分

中级会员

Rank: 3Rank: 3

积分
310
发表于 2021-2-5 14:22:22 | 显示全部楼层
哥哥牛逼
提及少年一词,应与平庸相斥!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表