为什么现代浏览器完全允许使用 iframe?

信息安全 Web应用程序 网页浏览器
2021-09-01 17:58:56

我阅读了许多 IT 安全博客(尽管我不是安全专家),并且似乎有很大比例的漏洞利用是通过将恶意 iframe 添加到被黑客攻击的网站来传递的,其中 iframe 指向恶意负载。

考虑到这一点,再加上我确实几乎没有看到不令人讨厌的合法 iframe 应用程序,为什么现代浏览器完全允许它们?在我看来,阻止大量偷渡式攻击的一种简单方法是简单地禁用浏览器中的 iframe 支持。

或者,类似于许多浏览器常见的“click-to-flash”插件的“click-to-load”机制会产生类似的效果,而不会完全阻止使用 iframe 的现有站点工作。
或者,禁止从另一个域加载内容的 iframe 也可能有效。


我当然不会声称阻止 iframe 会解决所有 Web 安全解决方案,但从成本效益的角度来看,这似乎是阻止大量安全问题的一种非常简单的方法。

4个回答

鉴于框架已被弃用,并且 AJAX 具有源控制,iframe 几乎是在您的页面中嵌入另一个页面的唯一方法。

另一件事是您可以使用 iframe 来显示 PDF/等。当然,您也可以使用<object>它,但 iframe 更容易。

GMail 是由 iframe 制作的。GMail 流畅的用户体验(当您的互联网连接中断时,您仍然可以使用它,流畅的导航而无需每次都重新加载)来自 iframe。同样,这可以在 AJAX 中实现,但更难。

想到的最后一件事是向后兼容性。许多网站都使用 iframe,禁用它会破坏其中的太多。当然,点击启用也不会在这里解决问题。AJAX 的前身之一是使用 iframe 和 javascript 的技巧。很多网站过去都使用它,“点击加载”会破坏 JS 的流程。

另一方面,iframe 的问题(CSRF、点击劫持等)对于现代开发人员来说是众所周知的,他们可以采取措施避免这种情况。


如果你看一下,这个问题中的论点可以同样适用于 Java 小程序。或闪光。或 PDF 嵌入。或图像(CSRF)。或者饼干。例如,其他网站可以通过图像对您进行 CSRF。您可以确保您的网站不会受到这些攻击。

3-D 安全支付系统(例如MasterCard SecureCode)使用iframe. 以前的版本使用弹出窗口,用户更容易验证其出处。显然,从 VISA / MasterCard 向用户展示的弹出窗口实际上并没有验证弹出窗口的出处;相反,他变得困惑,并退出,中止了他的交易。

由此我们可以得出以下结论:iframe 不会很快消失。现在需要它们来向后兼容支付系统,最终支付整个互联网的费用。此外,我们可以说,使用 iframe 只会在用户激活大脑并且不要惊慌的情况下提供安全优势——我不会打赌。

禁止 iframe 会破坏功能,并且一无所获。

漏洞利用注入通常使用 iframe 完成,因为这是攻击者设置和管理重定向的最便捷方式。但实际的 iframe 与漏洞利用无关。它不像点击播放那样直接保护您免受 Java 和 Flash 插件中的实际攻击。

如果只有少数用户关闭了 iframe,他们可以通过避免这些攻击获得安全优势。(虽然,鉴于 iframe 被广泛用于网络上许多不同类型的功能,它是否值得值得怀疑。)

但是,如果每个浏览器都关闭 iframe 支持,攻击者只会选择其他一些方法将漏洞注入受感染的站点,例如直接<script>、页面重定向、弹出窗口等。

解决问题的症状而不是问题的根本原因的安全措施<iframe>仅在异常情况下才有用,因此攻击者不会预料到它。一旦成为主流,它就失去了价值。如果您是主要的浏览器供应商,那么实施会立即使自己变得无用的安全控制几乎没有意义。

万维网是链接资源的集合。Theiframe是最终的链接器,它链接到整个资源包。和任何技术一样,它可以用于好的和坏的。

iframe不是链接到恶意软件资源的唯一方法。最终,会有一个 JavaScript 脚本或其他资源(如 SWF 或 JAR)利用浏览器。iframe只是管理从集中式来源加载恶意软件内容的一种很好、灵活且紧凑的方式。

Noscript有那种会阻止iframes. 默认情况下它被禁用,因为它破坏了很多东西。许多网络技术都基于 .iframe如果您阻止或提示iframes.