gpt4 book ai didi

html - 为什么自引用 iframe 不会无限循环并使我的机器崩溃?

转载 作者:技术小花猫 更新时间:2023-10-29 11:35:02 28 4
gpt4 key购买 nike

我使用 iframe 创建了一个简单的 HTML 页面,其 src 属性引用了包含页面——换句话说,一个自引用的 iframe。

this.html

<html>
<head></head>
<body>
<iframe src="this.html"></iframe>
</body>
</html>

为什么这不会无限循环并使我的浏览器崩溃?另外,为什么连 IE 都不崩溃?

(注意:这是从关于使用 iframe 解决问题的优点和缺点的团队讨论中产生的。你知道,“镜子中的镜子”类型。)

最佳答案

W3C 在 1997 年解释了框架应该如何在“Implementing HTML Frames”中实现:

Any frame that attempts to assign as its SRC a URL used by any of its ancestors is treated as if it has no SRC URL at all (basically a blank frame).


iframe 递归错误/攻击历史

正如 kingdago 发现并在上面的评论中提到的那样,1999Mozilla 是一个未能为此实现保护措施的浏览器。引用其中一位开发人员的话:

This is a parity bug (and a source of possible embarrasment) since MSIE5 doesn't have a problem with these kinds of pages.

我决定对此进行更多研究,结果发现这发生在 2004 again .然而,这次 JavaScript 参与进来了:

This is the code, what causes it: <iframe name="productcatalog" id="productcatalog" src="page2.htm"></iframe> directly followed by a script with this in it: frames.productcatalog.location.replace(frames.productcatalog.location + location.hash);

...

Actual Results: The parent window gets recursively loaded into the iframe, resulting sometimes in a crash.

Expected Results: Just show it like in Internet Explorer.

然后 again 2008 使用 Firefox 2(这也涉及 JavaScript)。

again 2009。这里有趣的部分是这个错误仍然存在和这个附件:https://bugzilla.mozilla.org/attachment.cgi?id=414035(你会克制你的好奇心?)仍然会让你的 Firefox 崩溃/卡住(我刚刚测试过它,我几乎让整个 Ubuntu 崩溃了)。在 Chrome 中,它只是无限期地加载(可能是因为每个选项卡都在一个单独的进程中)。


至于其他浏览器:

  • 2005 Konqueror允许呈现 iframe 的安全措施中有一个错误 one inside another (但似乎它并没有卡住/崩溃整个应用程序)。
  • IE6、Opera 7.54 和 Firefox 0.9.3 也是 reported容易受到基于 iframe 递归的攻击。<​​/li>

关于html - 为什么自引用 iframe 不会无限循环并使我的机器崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14223628/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com