从HTML 5游戏BrowserQuest看代码漏洞

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

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

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

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

[[76781]]

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

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

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

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

copy(localStorage["data"])

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

  1. {"hasAlreadyPlayed":true,"player":  
  2. {"name":"Romana","weapon":"goldensword","armor":"goldenarmor","image":"data:image/png;base64,deleted"},"achievements":  
  3. {"unlocked":  
  4. [2,5,11,6],"ratCount":3,"skeletonCount":1,"totalKills":5,"totalDmg"  
  5.  
  6.  

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

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

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

[[76782]]

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

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

【编辑推荐】

  1. 如何制作HTML 5的iPhone应用程序
  2. HTML 5和CSS3快速制作便签特效
  3. HTML 5 WebDataBase设计离线数据库
  4. HTML 5实现拍照上传应用实现
  5. HTML 5打造桌面应用
责任编辑:张伟 来源: HTML5研究小组
相关推荐

2012-04-13 09:42:34

2020-11-19 10:09:55

漏洞逆向角度证书覆盖

2014-12-30 17:13:51

HTML5

2014-04-14 13:22:33

OpenSSL漏洞OpenSSL

2011-05-11 13:58:19

HTML5

2012-05-15 10:35:35

HTML5

2012-01-06 14:10:13

HTML 5

2011-03-23 09:33:51

HTML 5

2009-07-08 19:44:56

2015-07-08 16:38:10

Cocos游戏引擎

2012-04-25 14:36:52

HTML5

2013-10-21 15:24:49

html5游戏

2009-10-12 11:23:38

2011-12-21 09:38:31

HTML 5

2012-05-09 09:41:58

HTML5

2013-06-24 14:55:30

HTML5

2011-11-30 15:14:32

HTML 5

2012-03-06 10:56:32

HTML 5

2014-04-08 10:02:20

2019-02-18 16:21:47

华为代码重构
点赞
收藏

51CTO技术栈公众号