Javascript 使JS代码不可读/重到“0”;“黑客”;

Javascript 使JS代码不可读/重到“0”;“黑客”;,javascript,obfuscation,Javascript,Obfuscation,我想写一个小游戏,用户必须在给定时间内点击出现的元素/对象。详细地说,对象出现在地面上的孔中,x秒后对象消失。玩家的寿命为y,所有点击次数都会被计算,直到他输掉游戏为止。 之后,他的高分会被发布到数据库中(通过表单post或AJAX)。长话短说我如何才能避免用户在发送前伪造自己的高分?程序语言是JS 我知道不可能隐藏所有代码,使其无法被黑客攻击。但我认为,如果代码太难,以至于用户必须做大量工作才能理解他必须在何处进行干预才能发送伪造数据,那就足够了 有人知道如何使代码尽可能的难吗 提前感谢您的建

我想写一个小游戏,用户必须在给定时间内点击出现的元素/对象。详细地说,对象出现在地面上的孔中,x秒后对象消失。玩家的寿命为y,所有点击次数都会被计算,直到他输掉游戏为止。 之后,他的高分会被发布到数据库中(通过表单post或AJAX)。长话短说我如何才能避免用户在发送前伪造自己的高分?程序语言是JS

我知道不可能隐藏所有代码,使其无法被黑客攻击。但我认为,如果代码太难,以至于用户必须做大量工作才能理解他必须在何处进行干预才能发送伪造数据,那就足够了

有人知道如何使代码尽可能的难吗


提前感谢您的建议:)

您永远不应该试图让源代码不可读。对你自己来说,这比任何人修改它的障碍都要让你头疼


这就是说,您可以重构所有变量名以完成胡言乱语并使用空格,但任何认真尝试理解您的代码的人都可以在一个像样的文本编辑器中还原它。使它变得更复杂会降低程序的效率——否则,您可能会用对不做任何事情的函数的无用调用和程序不依赖的计数器的奇怪增量来填充它。

有一些压缩器可以完成您想要的工作!其中一些可以下载并用作脱机工具,一些可以直接通过web访问:

与jquery和其他类似,您可以使用代码来维护脚本,并提供一个几乎不可读的更快的可加载打包版本

这样如何:

创建两个PHP页面,一个包含游戏界面,另一个包含游戏代码。对第一个进行编程,以便创建一次性使用字符串,当标记从第二个调用JS代码时,该字符串将作为参数传递。对第二个进行编程,以检查发送的字符串的有效性。如果字符串有效,脚本应该输出JS代码,然后使字符串无效


然后,当用户复制脚本的URL,将其粘贴到浏览器中,并点击“返回”时,他看到的不是空白页面,就是“未授权”消息。

可能的副本无法使JavaScript混淆到足以做到这一点;网络请求很容易被分析和伪造。如果你做了一段时间的梦,你可能会想出一种方法来验证高分。允许两台机器执行相同的计算,而不让一台机器向另一台机器泄漏太多信息。您可以使用它来确保点击次数得到计数,而不会泄露太多的游戏状态,但对于Javascript游戏来说,这可能是太尖端的研究了。其他现有的SO问题涉及JS混淆器的状态。如果你真的想获得高分,最好的办法是将用户的游戏操作传达给服务器,然后识别普通玩家和骗子之间的差异。我听说有一些概率分析方法可以识别异常行为,但这超出了我的专业水平。我可能会把这篇文章转载到网上,让它成为关于识别作弊的文章;那么你有一个非常有趣的问题。