2

我正在考虑在公共社交网站 (yourworldoftext.com) 中使用 JavaScript 创建迷你游戏,我有一个想法,我是该网站的用户,并将我的 JavaScript 嵌入到链接的 href 中,其他人可以点击开始游戏。

我正在考虑的一种方法是这样的

  1. 尽可能压缩/混淆 JavaScript
  2. 将 JavaScript 加密成一个字符串,并用一个小的解密 JavaScript 包装所有内容,该 JavaScript 将评估解密的字符串(解密的密钥将使用 AJAX 从同一站点上的其他页面检索)

这是我的动机:

  1. 人们应该都使用相同版本的游戏,而且作弊并非易事
  2. 源代码包含可能对像我这样的 JavaScript 开发人员来说很容易编写的 hack,但这些代码可能会被复制粘贴并被滥用以向网站发送垃圾邮件
  3. 知情的垃圾邮件发送者可以在网上找到任意数量的免费脚本,我只是不希望它从我的脚本中免费获得
  4. 我希望任何人都能够在不知道任何隐藏秘密的情况下运行该应用程序(这将使脚本公开变得毫无意义,因为那样我只会分享我信任的游戏,使脚本本身成为秘密)

不要误解我,我知道绝对没有办法确保 JavaScript 背后的源代码不会提供给知情/智能用户,我只是在投票看看这是否是徒劳的练习,我应该'甚至不必费心额外的加密步骤,或者如果有人认为这种技术有一些优点。

我倾向于相信它可能会阻止临时用户,我只是不确定需要多少知识才能破解它,如果可能是临时社交网络用户可以破解它。

另外,我怀疑萤火虫、开发人员工具、网络检查器无论如何都会显示评估的代码,但我不确定。如果是这样,那么它就不会真正做任何事情来保护它。该网站上的大多数用户都使用 chrome(据我所知,因为它在该浏览器上效果最好)。那么chrome会在网络检查器中轻松显示它吗?

4

2 回答 2

3

正如您所描述的那样,缩小、混淆和加密都是人们处理您的代码的小障碍。每个小障碍都会阻止少数潜在的黑客。但是,这三者都不会阻止坚定的黑客。

绕过加密所要做的就是在调试器中设置一个断点,并在代码被解密后立即捕获代码,然后再将其发送到 eval,然后从调试器中复制/粘贴。因此,它甚至几乎不会减慢坚定的黑客的速度。事实上,缩小(用无意义的短名称替换所有有意义的变量名实际上为黑客理解你的代码创造了更多的工作)。

就个人而言,我会避免加密,因为它并没有真正增加太多,而且坚定的黑客很容易绕过。

于 2013-05-05T04:51:55.650 回答
0

你是对的,这是徒劳的。根本不用理会这个。你的代码,虽然被缩小和混淆,但可以被几乎没有知识的用户提升。

于 2013-05-05T04:09:42.160 回答