我使用JavaScript和AngularJS创建了一个琐碎的游戏。当今天把它呈现给我的团队时,一位团队成员黑了代码,并因此赢得了比赛。
这个想法是每个玩家点击一个按钮来生成一个介于1-100之间的随机数。Tom (下面的截图),在JavaScript中放置一个断点,每次将这个数字更改为99。
有什么办法可以防止这种情况发生吗?根据我所听到的,以及一些googling,似乎是不可能阻止这一点;需要进行一次到服务器的旅行,这样就可以在那里生成随机数。
是那么回事吗?我是否需要改变我的游戏,让服务器调用每一代的随机数?如果是这样的话,是否至少有某种方式可以使浏览器内的黑客攻击变得极其困难?使用JavaScript和AngularJS,将所有这些都放在前端是件很好的事情;它既快速又简单。
发布于 2014-06-16 18:42:28
防止这种情况的最好方法是调用服务器并记录发送给客户端的值,这样您就可以验证它,这是真正做到这一点的唯一简单方法。
但是,您可以采取一些步骤来使客户端的工作变得非常困难。如果您要缩小JavaScript代码(可能也混淆了所有的方法名称),这将使您很难理解它在做什么,并在正确的点设置一个断点。
例如,在Chrome中,我在jquery.min.js中只有4行可供选择。如果我想编辑突出显示的部分,这几乎是不可能的,除非通过降级过程发送这段代码,或者使用像fiddler这样的工具重定向到不同的JavaScript。
发布于 2014-06-16 18:41:17
您可以缩小您的javascript,这可能会有所帮助,但在技术上是没有办法的。您需要将一些逻辑服务器端移动到可以验证的位置。
https://stackoverflow.com/questions/24250060
复制相似问题