AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

国外网友另类方式曝主流浏览器 HTML5 bug:localStorage 可占满硬盘

  • 2013-02-28
  • 本文字数:1050 字

    阅读完需:约 3 分钟

HTML5 Web 存储标准是设计为让站点可以存储比 Cookie(4KB)大的多的数据(比如 5-10MB)来制定的。现在,localStorage 已经发展的非常不错,在所有现代浏览器中都得到了支持(Chrome, Firefox 3.5+, Safari 4+, IE 8+,等等)。

然而,纵使 Chrome 的版本号已经逼近 30,IE 也已然发布了他的第十代产品,这个标准却仍未完美。国外网友 Feross Aboukhadijeh 在他的个人博客上,发布了一个搞怪的 API—— HTML5 Hard Disk Filler™。通过这个 API,他想告诉大家,其实这项功能在主流浏览器中还有着非常明显的问题。

W3C 标准早就预料到,可能会有网站可能会滥 Web 存储特性。在标准里,W3C 建议浏览器为每个域设置一个存储空间上限。所以,实际情况是这个样子的:

  • Chrome 中的每个域可以使用 2.5 MB
  • Mozilla Firefox 和 Opera 中的每个域可以使用 5 MB
  • Internet Explorer 中的每个域可以使用 10 MB

但是,如果站长们比较聪明,使用了很多诸如 1.filldisk.com、2.filldisk.com、3.filldisk.com 这样的子域名会怎么样?每个子域名都会有 5MB 的存储空间吗?W3C 标准表示这是不可以的:

User agents 应该阻止站点通过附属网站的形式来存储数据,比如通过使用 a1.example.com、a2.example.com、a3.example.com 这样的子域名来绕过主域名的存储限制。

通常来讲,我们建议给予一个强制的 5MB 存储限制。

然而,Chrome、Safari,和 IE 目前还没有实现这些诸如对“附属站点”进行存储限制的功能。所以,那些聪明的网站,比如 FillDisk.com,实际上可以通过这个方式,在每个访问用户的电脑上获得几乎无限的存储空间。

一个概念证明的 demo

原文作者提供了一个漂亮的 demo: FillDisk.com 来作为证明此概念的 demo。并且他还将这个 demo 开源在了 GitHub 上。

这个 demo 的特性有:

  • 充满 Chrome、Safari(iOS 与桌面版本)和 IE 用户的硬盘;
  • 在装配有 SSD 的 Macbook Pro Retina 上,占领 1GB 只需要 16 秒;
  • Chrome25、Safari6、IE10 测试通过;
  • 在像 Chrome 这样的 32-bit 的浏览器下,硬盘充满之前浏览器就会先被搞崩溃;
  • Firefox 测试失败,因为 Firefox 完美实现了 localStorage 的标准;
  • 还提供了一个清除磁盘占用空间的按钮。

各位不妨一试。

如何修正这个 Bug?

作者在天才般的搞怪结束之后,变得正经起来,给出了 Google 和 Apple 的 bug report 链接:

但是他也表示,IE 怎么办呢?因为 IE 的 bug report 页面坏掉了。

原文中有很多有趣的浏览,感兴趣的读者可以移步至英文原文。当然,也欢迎大家对此 Bug 以及这位国外友人的曝 Bug 方式在此留言讨论。

2013-02-28 07:554090
用户头像

发布了 91 篇内容, 共 38.5 次阅读, 收获喜欢 3 次。

关注

评论

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

有哪些好用的企业级即时通讯平台推荐

BeeWorks

【Paper Reading】结合 NanoFlow 研究,优化大语言模型服务效率的探索

阿里云大数据AI技术

人工智能 大语言模型 NanoFlow

数据中台进化为数据飞轮的必要

桃花键神

从数据仓库到数据中台再到数据飞轮:金融行业的数据技术进化史

桃花键神

金融行业中如何利用数据中台的数据来有效的驱动业务决策呢?

桃花键神

macOS Ventura 13.7 (22H123) 正式版发布,ISO、IPSW、PKG 下载

sysin

macos ventura

企业级即时通讯平台有哪些?探究适合企业使用的即时通讯工具

BeeWorks

什么是即时通讯平台

BeeWorks

FinOps三人行:共话FinOps云成本管理与AI的未来在线分享(文字+视频)

雅菲奥朗

FinOps AIGC 云成本管理 云财务管理 FinOps认证

为什么全球顶尖银行纷纷选择与华为合作?

脑极体

AI

Java音视频文件解析工具

江南一点雨

天猫商品详情数据API接口:解锁高效数据获取的钥匙

代码忍者

API 接口 pinduoduo API

MES系统助力塑料制品行业数字化转型

万界星空科技

制造业 mes 万界星空科技 注塑行业 塑料制品行业

凡人歌:平凡公司的技术面试

iofomo

生活 职业成长 #面试

IM即时通讯软件,WorkPlus助力企业高效协作的企业级即时通讯系统

BeeWorks

人工智能(大模型)工程师中级课程,正式开始报名!

雅菲奥朗

人工智能 AI AIGC 人工智能工程师 人工智能工程师培训

VMware NSX Advanced Load Balancer (NSX ALB) 22.1.7 发布下载,新增功能概览

sysin

负载均衡 Lab nsx

面试官:单核服务器可以不加锁吗?

王磊

MES系统与其他系统的集成:提升制造业智能化的关键路径

万界星空科技

数字化转型 系统集成 ERP mes 智能制造业

云开发让 Unity 微信小游戏实时聊起来

蛋先生DX

腾讯云 Unity 云开发 实时聊天 微信小游戏

ROS 编程入门的介绍

芯动大师

ROS

我一进门就看见 AI 在啪啪啪狂敲代码

江南一点雨

【Tomcat源码分析】启动过程深度解析 (二)

派大星

tomcat源码解读

即时通讯平台是什么?

BeeWorks

国外网友另类方式曝主流浏览器HTML5 bug:localStorage可占满硬盘_JavaScript_彭超_InfoQ精选文章