热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTML5通过sandbox属性提升iFrame的安全性

目前WebHypertextApplicationTechnologyWorkingGroup(WHATWG)正与W3C通力合作建立HTML5标准&#x

目前Web Hypertext Application Technology Working Group(WHATWG)正与W3C通力合作建立HTML 5标准,在过去3个月中,该项工作已经进入到了WHATWG的“Last Call”阶段。在这期间,变化最大的一个特性就是iframe元素的sandbox属性。sandbox属性可以防止不信任的Web页面执行某些操作。

\u0026#xD;\n

HTML 5规范的编辑Ian Hickson谈到了sandbox的好处,它可以防止如下操作:

\u0026#xD;\n
\u0026#xD;\n
  • 访问父页面的DOM(从技术角度来说,这是因为相对于父页面iframe已经成为不同的源了)\u0026#xD;\n
  • 执行脚本\u0026#xD;\n
  • 通过脚本嵌入自己的表单或是操纵表单\u0026#xD;\n
  • 对COOKIE、本地存储或本地SQL数据库的读写\u0026#xD;\n
\u0026#xD;\n

HTML 5的修订历史页面还提到了sandbox的其他特性:

\u0026#xD;\n
  • 禁用插件\u0026#xD;\n
  • 禁止其他浏览上下文的导航\u0026#xD;\n
  • 禁止弹出窗口和模式对话框\u0026#xD;\n

iFrames因安全问题而臭名昭著,这主要是因为iFrames常常被用于嵌入第三方内容,而后者则可能会执行某些恶意操作。sandbox通过限制被嵌入内容所允许的操作而提升iFrames的安全性。这种方式将沙箱内容与父页面进行了分离,因此限制了被嵌入内容的权限。

\u0026#xD;\n

与sandbox一起出来的还有其MIME类型:text/html-sandboxed。Hickson说到:

\u0026#xD;\n
text/html-sandboxed MIME类型确保用户不会访问到不可信的内容。它包含两部分内容:首先,如果用户直接访问页面时,浏览器不可以渲染那些具有text/html-sandboxed MIME类型的页面。目前所有浏览器都支持这一点,这些浏览器会下载页面的标记但不会渲染页面;其次,支持sandbox属性的浏览器需要渲染具有text/html-sandboxed MIME类型的iframes(但会受到sandbox属性中所设定的权限限制)目前为止,还没有浏览器实现这一点,Google Chrome也是如此(它会渲染父页面,但却下载iframe内容而非在iframe中对其进行渲染)。因此目前还没法使用该项技术,除非Google更新Chrome以支持这一点(从理论上来说,其他的浏览器厂商在实现了对sandbox属性的支持后就会实现该技术,让我们拭目以待吧)。
\u0026#xD;\n

目前,只有Google Chrome 4.0使用了sandbox,Firefox、IE8和Safari都还没有实现这一点,但相信不久之后这些浏览器都会实现的。围绕着HTML 5 \u0026lt;video\u0026gt;元素发生了很多事情,Google通过H.264标准对其进行实现,而其他浏览器则使用了不同的标准或是干脆还没有实现。但这种情况不会发生在这里,因为每个浏览器都可以在内部自由决定如何实现sandbox。但即便是明天所有的主流浏览器都采用了sandbox,众多的开发者和内容管理者也不能立刻就使用它,因为还有那么多的遗留浏览器会忽略掉该属性,因此稳妥的办法还是采取常规的安全手段来保护iFrames。

\u0026#xD;\n

查看英文原文:The HTML 5 sandbox Attribute Improves iFrame Security


推荐阅读
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 该问题可能由守护进程配置不当引起,例如未识别的JVM选项或内存分配不足。建议检查并调整JVM参数,确保为对象堆预留足够的内存空间(至少1572864KB)。此外,还可以优化应用程序的内存使用,减少不必要的内存消耗。 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 近期,有同事希望下载网络上的一些有趣视频用于个人用途,但在尝试过程中遇到了下载难题。通过使用Chrome开发者工具检查网络请求后,发现视频并非以常见的MP4格式提供,而是通过多个TS片段进行流式传输。为了高效地批量下载这些TS文件,可以利用FFmpeg这一强大的多媒体处理工具,实现自动化下载和合并,从而轻松获取完整的视频内容。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • Cocos2d-HTML5初学者指南:第一部分基础知识
    本文旨在为初学者提供Cocos2d-HTML5的基础知识入门指南。虽然作者在交大期间学习了基础的Web技术和AS3游戏开发,但感觉这些知识与实际应用仍有差距。几年前曾接触过Android开发,但由于缺乏C++和Objective-C的背景,未能深入。本篇将详细介绍Cocos2d-HTML5的核心概念和技术要点,帮助读者快速上手并掌握游戏开发的基本技能。 ... [详细]
author-avatar
心理学点滴_312
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有