前端之路(八)—— 嵌入技术

上一篇中我们学习把图片、音频、视频等多媒体嵌入到页面当中,除了这些,我们还能往页面嵌入其他东西吗?比如说直接嵌入一个页面,嵌入百度的搜索框等。这一小节我们就来学习一下其他嵌入的元素。

嵌入简史

首先简单了解一下嵌入的发展史。刚开始流行使用框架创建网站部分,然后将各个框架放到一个框架集的主文档中,该方法也存在一些问题,经过一段时间发展,嵌入技术变成很受欢迎,于是视频、动画等内容就通过嵌入技术来实现。最后<iframe>元素出现,它能够将整个web页都嵌入到另一个网页。<iframe>元素也沿用至今。

Iframe元素

正如上面提到的,经过技术更迭,iframe现在依旧被用于嵌入其他页面。这个元素在日常开发的应用也很常见,比如把自己公司的项目嵌入到甲方公司的系统当中,这个时候用iframe嵌入是个不错的方法。这里我们可以自己尝试一下在页面嵌入搜狗的地址。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <iframe src="https://www.sogou.com" width="500" height="500"> </iframe>
  </body>
</html>

接下来看下iframe基本属性

  • allowfullscreeb:如果设置,页面可设置为全屏模式。
  • frameborder:绘制嵌入边框,有两个属性值,为1表示在此框架与其他框架之间绘制边框,为0表示不绘制边框,默认值为1。
  • src:url路径,跟image,a用途一样。
  • width、height:宽高属性,这个属性老朋友了,前面提到过很多回。
  • 备选内容,在多媒体一章中提到过备选内容,当该元素不被浏览器支持时,会显示备注内容。
  • sandbox:可以提高安全设置。该属性兼容性要求高一点,需要在IE10及其以上版本才能生效。

安全隐患

iframe用起来虽然很方便,但自身还是有安全问题的,当然也不用因为安全问题特别害怕而不去使用iframe。这个安全隐患主要基于黑客的操作,黑客会攻击iframe来达到自己的一些目的,比如单击劫持(将隐藏的iframe嵌入到文档中,用来获取用户密码及敏感信息)。我们也可以通过操作提高iframe的安全性。

  • 只在必要时插入。就像我们上面提到的搜狗,一般情况下我们不会往我们项目中插入这样子的搜索框,而是通过插入自己写一个简单的搜索框。
  • 使用https。在我们插入url网址中,最好是用https开始的网址。
  • 使用sandbox属性。我们可以通过设置sandbox属性,该属性用于添加权限,达到保护的目的。需要注意上面提到的该属性有兼容性要求。
  • 配置CSP指令。CSP代表内容安全策略,它提供一组HTTP标头(由web服务器发送时与元数据一起发送的元数据),可以提高文档的安全性。
上一篇:iframe有哪些优缺点


下一篇:iframe内联框架