XPCSafeJSObjectWrapper做什么?
-
04-07-2019 - |
题
Mozilla Firefox的XPCSafeJSObject包装器实际上做了什么?
MDC 的文档如下:
创建此包装器是为了解决XPCNativeWrapper的一些问题。特别是,一些扩展希望能够安全地访问非本机实现的内容定义对象(以及在没有强大行为保证的情况下访问XPCNativeWrapper下的底层JavaScript对象)。 XPCSJOW充当chrome代码之间的缓冲区。
这并没有告诉我很多。特别是,我不知道如何通过XPCSafeObject访问对象与直接访问它们有什么不同。
编辑:我知道包装器的目的通常是保护特权代码免受非特权代码的影响。我不明白(并且似乎没有记录)是 完全是XPCSafeJSObject如何做到这一点。
它是否只是在访问属性之前删除权限?
其他提示
实际上XPCSafeJSObjectWrapper用于所有内容对象,包括窗口和文档(事实上它通常是最需要的。)我相信它的发明主要是为了阻止XSS攻击自动转变为权限升级攻击(通过对XSS进行攻击)浏览器本身)。至少现在如果发现XSS攻击(不幸的是人们会继续寻找),它不会危及整个浏览器。这是XPCNativeWrapper的一个自然发展,它最初是一个手册(因此容易被扩展意外滥用),以便浏览器保护自己免受XSS攻击。
包装器只是确保在没有chrome权限的情况下评估任何获得评估的代码。在没有此包装器的情况下直接访问对象可以允许代码以chrome权限运行,然后让代码执行任何操作。
不隶属于 StackOverflow