防止JavaScript黑客攻击

时间:2014-06-16 18:38:53

标签: javascript angularjs

我使用JavaScript和AngularJS创建了一个简单的游戏。在今天向我的团队展示时,一名团队成员破解了代码并因此赢得了比赛。

这个想法是每个玩家点击一个按钮生成1-100之间的随机数。 Tom(下面的截图)在JavaScript中添加了断点,并且每次都将数字更改为99。

有没有办法防止这种情况发生?从我所听到的和一些谷歌搜索来看,它似乎无法阻止这种情况;需要进行服务器访问,以便在那里生成随机数。

是吗?我是否需要更改我的游戏以便为每一代随机数拨打服务器?如果是这样,至少有一些方法可以使浏览器中的黑客攻击变得非常困难吗?使用JavaScript和AngularJS,很高兴将这一切都放在前端;这很快捷。

enter image description here

2 个答案:

答案 0 :(得分:1)

你可以缩小你的javascript,这可能会有所帮助,但从技术上讲,没有办法。您需要移动一些逻辑服务器端,以便进行验证。

答案 1 :(得分:1)

防止这种情况的最好方法是调用服务器并记录发送给客户端的值,以便验证它,这是真正实现这一目标的唯一简单方法。

但是,您可以采取一些措施使客户端变得非常困难。如果你要缩小你的JavaScript代码(并且可能会混淆所有的方法名称),这将使得它很难理解它的作用并在正确的点设置断点。

例如,在Chrome中,我只有4行可供选择,以便在jquery.min.js中断。如果我想编辑突出显示的部分,如果没有通过一个解决过程发送此代码或使用像fiddler这样的工具重定向到不同的JavaScript,这几乎是不可能的。

enter image description here