【问题标题】:What are the security risks and possible preventive measures when using an iframe to display external content?使用 iframe 显示外部内容时有哪些安全风险和可能的预防措施?
【发布时间】:2011-12-18 19:53:49
【问题描述】:

我正在为 A 公司构建一个 PHP Web 应用程序,用户可以在其中登录和管理他们库存中的某些项目。出于维护等原因,我想自己托管此应用程序,以确保服务器符合预期的性能标准,并且因为公司 B 或 C 可能也需要相同的服务。

A 公司(B 和 C 也一样)想要的是让这个应用程序可以从他们域上的子页面访问。我已经了解了 URL 重写和链接的可能性,但我决定使用 iframe 在他们的网站上显示应用程序。

我以前使用过 iframe,但在处理私有数据时从未使用过,因此我不太熟悉使用 iframe 所带来的安全风险。我在谷歌搜索后发现的许多示例都是黑客将具有自己目标的 iframe 添加到现有代码中的风险,而不是有害地使用现有代码。我应该注意什么并尽量避免发生?

如果我完全不同意这个,我可以使用什么其他方法来代替 iframe?鉴于上述要求。

【问题讨论】:

    标签: php html security iframe


    【解决方案1】:

    首先,您最好的解决方案可能是使用指向托管应用程序的服务器的子域。因此,A 公司可以在companya.com 上拥有他们的常规网站,但在app.companya.com 上拥有应用程序。

    关于框架,我认为在您的情况下无需担心任何安全“风险”。 iframe 将属于您,您可以控制它。 Javascript 的同源策略防止不同域(和子域,除非设置了document.domain)上的帧相互访问。因此 iframe 将无法访问父级,反之亦然。

    但是,我假设该应用程序是独立的,并且不依赖于父站点的任何内容。在这种情况下,一切都会发生在框架中,并且框架不需要以任何方式进行通信。

    当然,框架的缺点是,当您在 iframe 中加载新页面时,明显的 URL 和页面标题将保持不变,这会降低可用性(如果担心的话,对 SEO 也不利)。

    【讨论】:

      猜你喜欢
      • 2013-02-08
      • 1970-01-01
      • 2011-11-27
      • 2020-01-21
      • 2018-09-09
      • 1970-01-01
      • 2021-10-01
      • 2017-05-20
      • 1970-01-01
      相关资源
      最近更新 更多