【问题标题】:Is <iframe> the only way to implement external apps for WebOS?<iframe> 是为 WebOS 实现外部应用程序的唯一方法吗?
【发布时间】:2016-11-30 11:25:49
【问题描述】:

我正在做一个项目,我们正在尝试实现类似于 WebOS 的东西。有几个人提出了使用&lt;iframe&gt; 加载外部应用程序的想法。

我搜到了:https://osjsv2.0o.no/,这个项目也用到了(你们很多在demo中检查DOM来看看)。

但是,就我而言,我觉得这个想法相当糟糕,因为据我所知,只有在禁止跨域时才是安全的(parent.document 不会被访问)。

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

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

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

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

谢谢

【问题讨论】:

    标签: javascript dom iframe messaging web-worker


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 2013-03-25
      • 2017-10-13
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      相关资源
      最近更新 更多