我正在考虑用 JavaScript 创建一个公共社交网站 (yourworldoftext.com) 的迷你游戏,我有一个想法,我是该网站的用户,并将我的 JavaScript 嵌入到其他人可以点击开始的链接的 href 中游戏。
我想到的一种方法是这样的
- 尽可能压缩/混淆 JavaScript
- 将 JavaScript 加密到字符串中,并用一个小的解密 JavaScript 包装所有内容,该 JavaScript 将评估解密的字符串(解密的密钥将使用 AJAX 从同一站点上的其他页面检索)
这是我的动机:
- 人们应该都使用相同版本的游戏,作弊并非易事
- 源代码包含一些黑客行为,对于像我这样的 JavaScript 开发人员来说可能很容易编写,但代码可能会被复制粘贴并滥用以向网站发送垃圾邮件
- 知情的垃圾邮件发送者可以找到任意数量的在线免费脚本,我只是不希望它从我的脚本中免费获得
- 我希望任何人都能够运行该应用程序,而无需知道任何隐藏的秘密(这将使脚本公开变得毫无意义,因为那样我只会分享我信任的游戏,使脚本本身成为秘密)
不要误解我,我知道绝对没有办法确保 JavaScript 背后的源代码不会被知情/聪明的用户使用,我只是进行轮询,看看这是否是徒劳的练习,我不应该'甚至不需要额外的加密步骤,或者如果有人相信这种技术有一些优点。
我倾向于相信它可能会阻碍休闲用户,我只是不确定需要多少知识才能打破它,如果休闲社交网络用户可能会打破它。
另外,我怀疑 firebug、开发人员工具、网络检查器无论如何都会显示评估的代码,但我不确定。如果是这样,那么它就根本不会做任何保护它的事情。该网站上的大多数用户都使用 Chrome(据我所知,因为它在该浏览器上运行得最好)。那么 chrome 会在网络检查器中轻松显示它吗?
正如您所描述的那样,缩小、混淆和加密都是人们破坏您的代码的小障碍。每一个小障碍都会让一小部分潜在的黑客望而却步。但是,这三者中的任何一个都不会阻止坚定的黑客。
要绕过加密,只需在调试器中设置一个断点,并在解密后立即捕获代码,然后将其发送到 eval,然后从调试器中复制/粘贴。因此,它几乎没有减慢坚定的黑客的速度。事实上,缩小(用无意义的短名称替换所有有意义的变量名称实际上为黑客理解代码创造了更多工作)。
就我个人而言,我会避免加密,因为它并没有真正增加太多,而且对于坚定的黑客来说,它很容易绕过。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)