【转载】从Mozilla的HTML5游戏Browser Quest看代码漏洞

标签: HTML5 技术博文 HTML5最新动态 | 发表时间:2012-05-26 12:34 | 作者:HTML5研究小组
出处:http://www.mhtml5.com
by jianguang

声明:作弊并不是什么好事,我不提倡作弊。我也不想讽刺Mozilla的代码质量(实际上其代码糟透了)。我不是超级黑客,也不想在此唱高调。只是想演示一下我在Mozilla新游戏上是如何作弊的,以后大家在编写HTML5游戏时要注意避免这些问题。我的第一个编程实例非常简单。为了将Bard’s Tale游戏通过磁盘编辑器进行编辑并存入我的Apple 2e,我不得不学习16进制。

首先,介绍一下背景,前段时间Mozilla发布了一款新游戏Browser Quest。这是一款多人在线游戏。游戏规则并不复杂。任何人都可以一试。但是作为HTML5实现的一个例子,这的确很酷。

进入网站,输入用户名,选择角色(此功能的实现有点难度),然后就可以开始游戏了。

真正酷的是,Mozilla把整个游戏开放了源代码,包括前台客户端和后台技术。如果有兴趣,可以在这里下载源码: https://github.com/mozilla/BrowserQuest

为了进行研究,我玩了一下这款游戏,马上就意识到它用的是本地存储。我用Chrome extension(LocalStorage Monitor)来检测该游戏是否真的使用本地存储,结果发现:

首先我注意到,装备清单是在本地存储的,这就意味着我可以随便修改我的装备。查看代码后我发现,装备清单中的装备是被限定在一定范围内的,范围的大小由一个简单的数字指标来确定。如果把自己的装备都改成了顶级装备,那么系统会重置装备清单。

所以,第一步就是到控制台复制数据:

copy(localStorage["data"])

这样就把数据(JSON 字符串)复制到了剪切板,然后粘贴到记事本并编辑这两个值:

{"hasAlreadyPlayed":true,"player":

{"name":"Romana","weapon":"goldensword","armor":"goldenarmor","image":"data:image/png;base64,deleted"},"achievements":

{"unlocked":

[2,5,11,6],"ratCount":3,"skeletonCount":1,"totalKills":5,"totalDmg"

获取字符串并返回控制台……

localStorage["data"] = (pasted my string here)

重新加载页面,瞧—我变成了一个强大威武装备精良的复仇者:

再次重申,我并不是在些贬低Mozilla的成果。该游戏的确是个很不错的示例。只是别忘了本地存储,这种实现方式太不安全了。

作者:Raymond Camden

译者:林建光

原文链接: http://css.dzone.com/articles/how-i-cheated-mozillas-new

转载自: http://www.webapptrend.com/2012/05/2457.html#comment-988

相关 [mozilla html5 游戏] 推荐:

【转载】从Mozilla的HTML5游戏Browser Quest看代码漏洞

- - HTML5研究小组
声明:作弊并不是什么好事,我不提倡作弊. 我也不想讽刺Mozilla的代码质量(实际上其代码糟透了). 我不是超级黑客,也不想在此唱高调. 只是想演示一下我在Mozilla新游戏上是如何作弊的,以后大家在编写HTML5游戏时要注意避免这些问题. 为了将Bard’s Tale游戏通过磁盘编辑器进行编辑并存入我的Apple 2e,我不得不学习16进制.

Mozilla发布“BrowserQuest”网络游戏来证明HTML5的功能强大‎

- - HTML5研究小组
Mozilla为了体现HTML5的功能强大,日前Mozilla与法国一家游戏开发小作坊联手发布了一款新的大型基于HTML5技术的多人在线游戏. 对于HTML5的游戏,目前来说已经不是什么新鲜事了,Mozilla的发布该款网络游戏主要是作为一个展示其新的WebSockets技术而研发的,它表示允许支持“网页浏览器和服务器之间的双向通信.

Mozilla Shumway:基于 HTML5 的 Flash 运行时

- - ITeye资讯频道
Mozilla 近日正式发布了完全使用 HTML5 技术实现的 SWF 运行时环境 Shumway. 和Mozilla另一产品pdf.js 类似, Shumway 完全使用 HTML5 技术构建,实现了一个 Flash 的图像、音频、视频以及 Actionscript 的 1 至 3 版本的运行时环境.

Mozilla开发Gladius 3D游戏引擎

- SotongDJ - Solidot
Mozilla正在开发名为Gladius的3D游戏引擎,它是Paladin项目的一部分,旨在将3D游戏引入Web. Mozilla已经开发了首个原型游戏RescueFox(工作在最新版Firefox),演示Gladius确能用于创建浏览器3D游戏. Mozilla开发者表示无意进一步开发RescueFox,但会继续开发其它3D游戏演示Gladius的进步.

为了HTML5:Mozilla Gecko智能机系统试玩

- - HTML5研究小组
Mozilla在智能手机上的杀手终于来了:据engadget报道,Mozilla在MWC大会上终于拿出了搭载智能机操作系统”Boot to Gecko”的真机,采用被Mozilla命名为“大地之母”——Gaia(盖亚)的UI. 据Mozilla工作人员称,Boot to Gecko操作系统可以安装在 解锁Bootloader的Android设备上.

Mozilla Popcorn Maker:基于HTML5的视频编辑器

- - ITeye资讯频道
作为HTML5技术的积极推广者之一,Mozilla基金会(Firefox开发商)日前推出了一款基于HTML5技术的视频编辑“神器” Popcorn Maker, 用户只需进行再简单不过的“拖放”操作,就能轻松制作互动式的网络音频或视频. Popcorn Maker(意为“爆米花机”)的原型,是Mozilla去年推出的 “HTML5媒体框架”Popcorn.js(意为“爆米花”),它能让用户在其网络视频中添加互动元素,但是需要一定编程基础.

割绳子游戏HTML5版

- - 我爱互联网
在拉斯维加斯正在举行的CES大会上,微软CEO鲍尔默宣布了基于IE9和 html 5框架的 割绳子游戏,由微软及游戏开发商ZeptoLab共同推出,用于促进IE9的使用及网页的美化,网页版点击这里. 游戏主角就是一个贪吃的小绿怪兽,必须通过割绳子来将糖果送到小怪物嘴里,并搜集星星来增加得分. 到目前为止,下载量已经超过6000万,潜力足以和《愤怒的小鸟》媲美.

游戏开发商开源HTML5游戏

- - Solidot
游戏工作室Wooga开源了其开发的HTML5游戏Pocket Island,源代码托管在GitHub上,该公司在官方博客上介绍了他们的开发经验,认为HTML5游戏有潜力,但尚未做好准备,开源的意图将是让其他人了解他们的工作,学习和改进. Wooga认为,2012年也许不是HTML5的黄金时代,但它的黄金时代即将到来.

Mozilla推出HTML5就可以玩的線上遊戲《BrowserQuest》 好復古哇~

- - 宅宅新聞 by 卡卡洛普
圖片來自:BrowserQuest. Mozilla覺得 火狐賺不夠~轉型製作網路遊戲了嗎. 其實Mozilla為了展現瀏覽器與 HTML5的相容性,還有伺服器與使用者瀏覽器雙向溝通功能的「 WebSockets」,Mozilla與Little Workshop合作推出,這款只要支援HTML5技術的瀏覽器就能線上遊玩的遊戲《 BrowserQuest》,看這名稱有沒有覺得是向《 勇者鬥惡龍》系列說安安你好啊~XD.

HTML5 tower defense – HTML5 塔防游戏 | 小众软件 > 游戏

- Yishen - 小众软件
塔防类游戏还是很受人喜爱的,今天的这个塔防是用 HTML5 写成的,虽然是简单的画面,但是深得塔防精髓. 官方网站 | 来自小众软件. ©2011 root for 小众软件 | 原文链接 | 0 留言 | 加入我们 | 投稿 | 订阅指南. vNES – 经典的在线电视游戏. 玛丽猫 – 经典的变态超级玛丽.