<iframe>是实现WebOS外部应用程序的唯一方法吗?

时间:2016-11-30 11:25:50

标签: javascript dom iframe messaging web-worker

我正在开发项目,我们正在努力实现与WebOS类似的东西。有几个人提出了使用&lt; iframe&gt; 加载外部应用程序的想法。

&#xA;&#xA;

我搜索并发现: https://osjsv2.0o.no/ ,这个项目也使用(你们很多人在demo中检查DOM来看它)。

&#xA;&#xA;

但是,就我而言,我发现这个想法相当糟糕,因为据我所知,只有禁止跨域时才是安全的( parent.document 将无法访问)。

&#xA;&#xA;

如果存在某种JavaScript API,可以在父文档中访问,但由于不允许跨域选项而无法访问&lt; iframe&gt; - 您将无法使用某种JS API。

&#xA;&#xA;

不会是虚拟化的方式父DOM(封装)和消息通过 Web-Workers 使用结构化克隆算法更聪明和安全的方式?

&#xA;&#xA;

此外,还需要提到安全问题。如果&lt; iframe&gt; 和父文档之间允许跨域通信 - 可能存在问题,攻击者可以在&lt; iframe&gt; 应用中加载JSON,这将是打破父DOM或为输入或其他方式制作一些间谍内容...

&#xA;&#xA;

因此,主要问题是:&lt; iframe&gt; 安全,是2016年(2017年)很快在Web OS中加载外部应用程序的唯一方法(如 OS.js )?

&#xA; &#XA;

感谢

&#XA;

1 个答案:

答案 0 :(得分:0)

我不是WebOS用户,但如果它提供访问权限,fetch()ServiceWorker脚本可以让您摆脱CORS限制。您需要在之后的某个沙箱中评估脚本,例如jailed,您可以在其中构建在其中运行的代码的上下文。