如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

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:063770
用户头像

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

关注

评论

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

网站开发进阶(三十六)String.getBytes()方法中的中文编码问题解决总结

No Silver Bullet

编码 5月月更 getBytes

GitHub上标星120K,Alibaba官网发布了这份Java全栈知识体系手册

爱好编程进阶

Java 程序员 后端开发

服务器运维省钱省事省心安全就用行云管家!

行云管家

服务器 行云管家 服务器运维

龙蜥正式开源 SysOM:百万级实战经验打造!一站式运维管理平台 | 龙蜥技术

OpenAnolis小助手

开源 操作系统 龙蜥社区 SysOM 系统运维SIG

Consul的基本使用与集群搭建

神农写代码

开家自助洗车房需要投资多少钱

共享电单车厂家

自助洗车加盟 开自助洗车店多少钱 开家自助洗车房

python好用的函数或库

AIWeker

Python 人工智能 5月月更

JavaScript class类的基本使用方法你知道吗

CRMEB

文章插图汇总

武师叔

自助洗车加盟都要注意哪些事项

共享电单车厂家

自助洗车加盟 自助洗车机厂家 自助洗车品牌

一个小操作,SQL查询速度翻了1000倍。

TiDB 社区干货传送门

final的两个重排序规则

爱好编程进阶

程序员 后端开发

Fluid 0

爱好编程进阶

Java 程序员 后端开发

FPGA(3)--VHDL及原理图--4位全加器

爱好编程进阶

程序员 后端开发

全球云服务支出持续攀升,中国云安全市场进入黄金期

行云管家

云计算 网络安全 公有云 云服务 云平台

中国联通改造 Apache DolphinScheduler 资源中心,实现计费环境跨集群调用与数据脚本一站式访问

白鲸开源

大数据 开源 Apache DolphinScheduler workflow apache 社区

手把手带你用Zabbix进行操作系统监控

博文视点Broadview

揭秘百度智能测试在测试自动生成领域的探索

百度Geek说

测试

加盟自助洗车需要营业执照吗

共享电单车厂家

自助洗车加盟 加盟自助洗车

网站开发进阶(三十三)中文字符编码问题解决总结

No Silver Bullet

异常 5月月更 中文编码

第1章-Spring的模块与应用场景

码匠

Java Spring Framework

给大家科普下如何加盟自助洗车

共享电单车厂家

自助洗车加盟 自助洗车怎么加盟 如何加盟自助洗车

墨天轮最受DBA欢迎的数据库技术文档-SQL优化篇

墨天轮

MySQL 数据库 oracle postgresql

实践GoF的23种设计模式:建造者模式

华为云开发者联盟

Go 设计模式 GoF 建造者模式

用上这个 Mock 神器,让你的开发爽上天!

Liam

前端 前端开发 Postman Mock Mock 服务

5分钟速览证券行业财富管理转型新趋势

易观分析

证券市场

如何制作网站的在线帮助中心

小炮

帮助中心

【国产免费】分布式作业批处理ETL平台TASKCTL变量属性设置

敏捷调度TASKCTL

大数据 DevOps 分布式 自动化运维 TASKCTL

购买自助洗车机时都要注意哪些

共享电单车厂家

自助洗车机多少钱 自助洗车机价格 自助洗车加盟 购买自助洗车机

开发板上新抢先知!居然可以用来跑游戏?

HarmonyOS开发者

开发板 HarmonyOS

Github首次开放,一天遭狂转 50w 次,大厂内部不外传的 100 万字 Java 面试手册

爱好编程进阶

Java 程序员 后端开发

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