2010-05-10 65 views
11

随着JavaScript和HTML5取代Flash的最近大肆宣传,我想知道 - 如何保护客户端js代码?当然,它可以混淆它,但这只会使它变得更难一些。另外,对于向服务器提交高分的游戏,在将这些分数发送到服务器之前修改这些分数是不是很容易?我知道即使Flash文件可以被反编译,但它们可以被混淆,并且闪存反编译不像在JS中修改数据那样容易 - 可以使用诸如Firebug的插件轻松完成。我想知道大家对此的看法。JavaScript中的安全/保护代码

回答

8

在客户端进行解析的Javascript永远不会100%安全。有总是是找出它做什么的方法。前几天我甚至看到一个工具,它解压缩包装的JavaScript,所以你唯一可以做的就是使用“丑陋的”变量名称(或者实际上,让一个JavaScript打包器将你的“好”变量名称变成简短/丑陋/无意义的)

为了保护游戏结果,你必须将一些游戏逻辑移动到服务器,以便客户端不能发送任意结果。

总结:不要在javascript代码中放置秘密,也不要信任来自客户端的任何内容 - 不管它是来自表单还是生成/通过javascript提交。

+0

谢谢。即使我确实移动了一些游戏逻辑,生成要发送到服务器的数据的算法仍然是非常开放的。另外,在采用HTML5时,这不是一个重要因素,特别是在游戏方面?为什么/人们如何预测闪光灯在出路? – BlueSilver 2010-05-10 07:49:31

+1

Flash几乎和javascript一样不安全。在那里有很好的动作反编译器,即使不可能,你仍然可以嗅探发送给服务器的请求。 除此之外,许多Flash游戏只是为了娱乐,而不是为了奖励等,所以如果有人在那里作弊或根本没有关系。 – ThiefMaster 2010-05-10 07:54:58

+0

不好意思问这个问题,但这不是HTML5采用的一个重要因素吗?另外,嗅探请求并不像查看源代码那么简单。此外,还有Flash游戏门户网站可以让你获得高分,因此作弊行为在那里很重要。 – BlueSilver 2010-05-10 08:05:03

0

你说对于向服务器发送高分的游戏来说,修改javascript和伪造请求太容易了?

除了大小写的情况,当你在客户端使用某种加密技术时,它是伪造这种请求的最简单方式,甚至不会分析脚本,而是自己发送虚假请求。您可以在计算机上轻松查看您在服务器和浏览器之间发送的所有内容,进行分析和更改