首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

HTML5 游戏开发证验

2012-08-14 
HTML5 游戏开发验证由于Ajax驱动的游戏界面中包含明文的标记和JavaScript代码,因此用户有可能(通过浏览器

HTML5 游戏开发验证

由于Ajax驱动的游戏界面中包含明文的标记和JavaScript代码,因此用户有可能(通过浏览器扩展和用户脚本)修改游戏的行为和数据。和其他Web应用程序一样,游戏中的成绩、JavaScript控制的动作,以及任何页面内的元素都可能落入用户的控制之下。问题在于要明确给定应用程序的易用性(这里的易玩性)或安全性的优先级。

由服务器端控制的游戏动作越多,应用程序就需要越频繁地访问服务器,因而游戏的响应速度也会越慢。平衡的关键在于攻击者通过应用程序界面所能修改的范围。如果一次简单的函数调用能比用户正常玩游戏更快、更容易打败对手,那么某些人就可能发现并利用该函数。如果脚本在不进行检查的情况下保存当前成绩,那么用户就可能会找到保存该脚本的位置并在游戏中为自己加上高分

?

我们讨论的情况中包括只是为了简单娱乐的单人游戏,即什么也不记录,而且只有一个游戏会话。对于这种类型的游戏,使用所谓秘笈欺骗程序的最大回报就是获得一个前所未有的高分。如果没有对玩家的排名,也不记录什么高分,那么这种情况下加强安全的必要性就会小很多,因为攻击者根本没有作-弊的动机。即使有人会看到带有不正当取得的高分的屏幕截图,对其他用户也不会有什么影响,并且对游戏本身也不会产生什么威胁。

?

在上述这种情况下,所有的逻辑、记分和验证都可以通过JavaScript实现,无需应用程序再访问服务器——除非游戏中需要加载新的信息。对于这些信息,可以采取多级方式,由游戏在快速启动后再延迟加载。或者,也可以大胆地将文本信息一次性加载到浏览器中。

如果作-弊手段影了其他玩家,如篡改玩家排名或在多人游戏中通过不正当手段打败其他玩家,那么就需要在应用程序中采取安全措施以保证游戏公平。即使为了获得最高排名的作-弊,都会扼杀真正用户的游戏愿望,这些人很可能会因为扫兴转而去玩其他游戏。



验证
?
验证在Ajax驱动的游戏中的必要性与在其他Web应用程序中的必要性没有高低之分,虽然对应用程序逻辑的验证可能会更复杂一些。数据验证是确保服务器端应用程序安全的第一步(当然,还包括身份验证和授权验证)。
与典型的Web应用程序中的验证稍有不同的是与环境相关的数据约束。当飞船在屏幕上移动时,它能够向服务器发送回的位置有非常具体的要求。由于飞船有最高速度和最高加速度限制,而且服务器对飞船的具体位置信息(x、Y、角度、x速度、y速度、加速度和旋转)也非常清楚,因此应用程序可以根据每个信息的变化来检查其当前位置、速度和加速度。

?

热点排行