【发布时间】:2016-11-30 11:25:49
【问题描述】:
我正在做一个项目,我们正在尝试实现类似于 WebOS 的东西。有几个人提出了使用<iframe> 加载外部应用程序的想法。
我搜到了:https://osjsv2.0o.no/,这个项目也用到了(你们很多在demo中检查DOM来看看)。
但是,就我而言,我觉得这个想法相当糟糕,因为据我所知,只有在禁止跨域时才是安全的(parent.document 不会被访问)。
如果有某种 JavaScript API,可在父文档中访问,但由于 <iframe> 的跨域选项不允许使用而无法访问 - 您将无法使用某种这种 JS API。
使用结构化克隆算法更聪明、更安全的方式不会是通过Web-Workers 虚拟化父 DOM(封装)和消息传递的方式吗?
此外,有必要提及安全性。如果<iframe> 和父文档之间允许跨域通信 - 可能存在一个问题,攻击者可以在<iframe> 应用程序中加载 JSON,这将破坏父 DOM 或为输入或其他内容制作一些间谍内容......
所以,主要问题是:<iframe> 是否安全且是 2016 年(即将 2017 年)在 Web OS(如 OS.js)中加载外部应用程序的唯一方法?
谢谢
【问题讨论】:
标签: javascript dom iframe messaging web-worker