IFrame和Frame有什么区别?

时间:2009-07-03 12:24:42

标签: html iframe frame

查看在我自己的订单表单中嵌入3D Secure页面的选项,我发现了以下内容:

“有些商业网站会将完整的浏览器页面用于身份验证,而不是使用框架(不一定是iFrame,无论如何都是一个不太安全的对象)。”

来自http://en.wikipedia.org/wiki/3-D_Secure

有人可以向我提供关于 为什么 iframe安全性较低的问题,并导致问题,而不是正常的框架?有什么基本差异?

我看到它的方式,iframe是要走的路。

7 个答案:

答案 0 :(得分:59)

区别在于iframe能够在页面内容中“浮动”,也就是说您可以创建一个html页面并在其中放置iframe。这允许您拥有一个页面并直接在其中放置另一个文档。 frameset允许您将屏幕分成不同的页面(水平和垂直),并在每个部分显示不同的文档。

阅读IFrames security summary

答案 1 :(得分:14)

IFrame只是一个“内部框架”。之所以可以认为安全性较低(完全不使用任何类型的框架)是因为您可以包含不属于您的域的内容。

所有这些意味着你应该相信你在iFrame或常规框架中包含的内容。

框架和IFrame同样安全(如果包含来自不受信任来源的内容,则不安全)。

答案 2 :(得分:6)

iframe用于包含完整页面。当这些页面托管在另一个域上时,您会遇到跨侧脚本和内容的问题。有办法解决这个问题。

框架用于将您的页面分成多个部分(例如,左侧的导航菜单)。不再推荐使用它们。

答案 3 :(得分:5)

我能想到的唯一理由实际上是wiki article you referenced提到一对......

  

“”Visa验证“系统引起了一些批评,因为它是   用户难以区分合法的验证者   Visa弹出窗口或内联框架以及欺诈性网络钓鱼站点。“

     

“截至2008年,大多数网络浏览器都没有提供简单的检查方式   iframe内容的安全证书“

如果您阅读文章中的Criticism section,则会详细说明所有潜在的安全漏洞。

否则,唯一的区别是 IFrame 是内联框架,框架框架集的一部分。这意味着更多布局问题!

答案 4 :(得分:5)

内联框架只是一个“框”,您可以将它放在网站的任何位置。 框架是一堆“盒子”放在一起,使一个网站有很多页面。

答案 5 :(得分:0)

虽然安全性相同,但欺诈性应用程序可能更容易使用iframe欺骗用户,因为他们可以更灵活地放置框架。

答案 6 :(得分:0)

基本上<frame>标签和<iframe>标签的区别在于:

当我们使用 <frame> 标签时,网页的内容由仅使用 <frame><frameset> 标签(<body>标签未使用) 为 :

<html>
<head>
<title>HTML Frames</title>
</head>
<frameset rows="20%,70%,10%">
   <frame name="top" src="/html/top.html" />
   <frame name="main" src="/html/main.html" />
   <frame name="bottom" src="/html/bottom.html" />
</frameset>
</html>

当我们使用 <iframe> 时,网页内容不包含框架,网页内容是通过使用 <body> 标签(<frame> 和 { {1}} 个标签未使用) 为:

<frameset>

所以 <html> <head> <title>HTML Iframes</title> </head> <body> <p>See the video</p> <iframe width="854" height="480" src="https://www.youtube.com/embed/2eabXBvw4oI" frameborder="0" allowfullscreen> </iframe> </body> </html> 只是将一些其他来源的文档带到网页中。 <iframe> 用于指定内联框架浮动框架。万维网联盟 (W3C) 在 HTML 4.01 中包含了 <iframe> 功能。

<iframe> 标签用于创建带有标签 <frameset> 的框架,而 <frame> 实现了 <iframe><frame> 标签的功能。与 <frameset> 标签不同,<frame> 标签也可以放在 <iframe> 标签内。

<body> 的放置很容易,编码人员可以轻松地将 <iframe> 标签放在其他网页标签中,如果需要,还可以添加多个 <iframe> 标签。另一方面,在 <iframe> 中放置 <frame> 标签有点复杂。

注意: <frameset> 标签和 <frame> 标签在 HTML5 中已弃用

因此,现在不推荐使用 <frameset><frame> 标记,因此 Web 开发人员使用 <frameset> 标记来创建网页内容并将某些其他来源的文档嵌入网页中{使用了 {1}} 个标签。但即使是 <body> 标签也被用于在网页中嵌入其他来源的文档,甚至 <iframe> 标签也被用于创建框架。