使用iframe显示外部内容时有哪些安全风险和可能的预防措施?

时间:2011-10-31 15:10:46

标签: php html security iframe

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

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

我之前使用过iframe,但从未处理过私人数据,所以我不太熟悉使用iframe的安全风险。我在谷歌搜索后发现的很多例子都是黑客在自己的目的地中添加iframe到现有代码的风险,而不是有害地使用现有代码。我应该注意什么,并试图防止发生?

如果我完全关闭这个,我可以使用什么其他方法而不是iframe?鉴于上述要求当然。

1 个答案:

答案 0 :(得分:0)

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

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

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

框架的缺点当然是当你在iframe中加载新页面时,明显的URL和页面标题将保持不变,这是糟糕的可用性(如果关注的话,对SEO有害)。