QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

HTML 5 通过 sandbox 属性提升 iFrame 的安全性

  • 2010-01-30
  • 本文字数:1422 字

    阅读完需:约 5 分钟

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

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

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

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

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

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

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

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

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

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

2010-01-30 00:063647
用户头像

发布了 88 篇内容, 共 264.3 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

《揭秘软件开发文档:你的项目管理必备利器》

金陵老街

开发文档

华为云云耀云服务器L实例,打造极致性能的原生虚拟化设施

平平无奇爱好科技

【GO】Grafana Tempo (1) --- 架构

非晓为骁

Go 可观测性 Grafana tempo LGTM

[ K8s Operator 开发完整教程-2 ] 使用kubebuilder直接上手

baiyutang

云原生 k8s operator PaaS

非递归方式 实现 前中后序遍历二叉树

程序员在修行

递归

中小企业要快速开展业务,为何建议用云耀云服务器L实例

平平无奇爱好科技

MySQL切换字符集引发的思考(二)

石小天

MySQL 数据库 运维 后端 dba

阿里云 X 森马 AIGC T 恤设计大赛开启!穿什么由你定,赢 Airpods,作品定制联名T恤

阿里巴巴云原生

阿里云 云原生 AIGC

华为云云耀云服务器L实例,助力千行百业轻松上云

平平无奇爱好科技

使用 Amazon Lambda 进行无服务器计算:云架构中的一场革命

亚马逊云科技 (Amazon Web Services)

容器 Amazon Lambda

ARTS 打卡第二周

程序员在修行

Go 格式化动词

小万哥

Go 程序员 后端 开发 Google

[ K8s Operator 开发完整教程-1 ] kind创建本地K8s集群

baiyutang

云原生 k8s operator PaaS

K8s Operator 开发完整教程

baiyutang

云原生 k8s operator PaaS

思考 快与慢 在工作中的应用 1

程序员在修行

netty WebSocket客户端实践

FunTester

揭示限流的力量:确保现代系统的健壮和效能

Steven

架构 分布式 限流 令牌桶 漏桶

云计算时代,华为云云耀云服务器L实例助力中小企业与开发者轻松上云

平平无奇爱好科技

Elasticsearch最佳实践:如何保证你的数据安全

腾讯云大数据

Elastic Search

想解决技术债,你要先学会如何量化它

互联网工科生

程序员 敏捷开发 技术债 敏捷宣言

快手StreamLake:构建大算力基础设施体系,应对视频和大模型挑战

Geek老T

大模型 AIGC

CAD迷你看图 for Mac(MiniCAD) v4.4.5中文特别版

mac

苹果mac Windows软件 CAD迷你看图 设计软件

Apache IoTDB:更适合工业物联网场景的新型数据库,存、查、用不再是难题

Apache IoTDB

如果你越来越冷漠

宇文辰皓

问题即答案:HarmonyOS NEXT,点燃应用生态星星之火

Geek_2d6073

AI 狂飙,云端 IDE 如何书写未来?TVP 吐槽大会邀您来论道

CODING DevOps

OSCS开源安全周报第 57 期:Smartbi windowUnloading限制绕过导致远程代码执行

墨菲安全

网络安全 安全漏洞 oscs

报名开启丨邀你一起探索云端 AI 新兴技术和发展模式

TRaaS

英文阅读 The manager's path

程序员在修行

C++字符串详解

芯动大师

HTML 5通过sandbox属性提升iFrame的安全性_安全_Abel Avram_InfoQ精选文章