报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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

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

关注

评论

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

1亿条数据批量插入 MySQL,哪种方式最快?

小小怪下士

Java MySQL 程序员

谈谈我工作中的23个设计模式

阿里巴巴云原生

阿里云 云原生 技术文章

火山引擎VeDI推出这款产品 助力企业实现以“人”为中心的数据洞察

字节跳动数据平台

大数据 数据分析 火山引擎

什么?Coolbpf 不仅可以远程编译,还可以发现网络抖动! | 龙蜥技术

OpenAnolis小助手

Linux 开源 ebpf coolbpf 龙蜥峰会

教育机构客户管理系统功能方案详解!

优秀

CRM系统 客户关系管理系统

W3C发布小程序技术标准白皮书

Onegun

小程序 微信小程序

PGL图学习之基于GNN模型新冠疫苗任务[系列九]

汀丶人工智能

图神经网络 GNN 11月月更

大数据培训前景怎么样?

小谷哥

web前端培训学习后还有做前端开发的吗

小谷哥

小程序插件和小程序组件,有区别?

FinFish

小程序 移动开发 跨端开发 小程序插件 小程序组件

行业分析| 实时音视频的多种用法

anyRTC开发者

音视频 实时音视频 实时通信 语音通话 视频通话

技术实战:初创项目前端框架选型

FinFish

前端开发 前端框架 技术选型 移动开发

华夏天信携手华为云开天aPaaS,打造安全、高效、节能的主煤流运输系统

华为云开发者联盟

云计算 后端 华为云

ShareSDK Android端权限说明

MobTech袤博科技

上新啦KIT

HarmonyOS SDK

HMS Core

移动跨端框架发展史及优劣对比

FinFish

前端框架 跨端框架 移动端跨端 跨端发展

移动跨平台技术方案选型建议

Onegun

移动端 跨端开发 跨端框架

报名即将结束!11 大云原生领域开源技术干货一场拿下

阿里巴巴云原生

阿里云 开源 容器 微服务 云原生

大数据培训程序员都去做什么了

小谷哥

前端哪个培训学习比较好?

小谷哥

SQL面试 100 问

FunTester

要想后期修改少,代码重构要趁早

华为云开发者联盟

云计算 后端 华为云

异常捕获中finally和return的用法

自由呼吸

Java 11月月更

KVC原理与数据筛选

京东科技开发者

后端 数据处理 KV存储引擎 KV查询

如何在几百万qps的网关服务中实现灵活调度策略

百度Geek说

网关 调度 动态配置 12 月 PK 榜

元宇宙赛道逐渐清晰,虚实世界如何“破壁”?

旺链科技

区块链 产业区块链 元宇宙

云原生微服务治理技术朝无代理架构的演进之路

华为云开发者联盟

云计算 云原生 后端 华为云 微服务治理

跨境电商ERP也爆单,分布式新型数据库迎战

OceanBase 数据库

数据库 oceanbase

预告|2022 星策 Summit 首批嘉宾确认,大会火热报名中!

星策开源社区

机器学习 开源 数字化 管理层 企业转型

Function源码解析与实践

京东科技开发者

编程语言 Function 编程‘’ 后端、

前端培训中应该怎么学习web前端

小谷哥

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