随着最近关于JavaScript和HTML5取代Flash的大肆宣传,我想知道 - 如何保护客户端js代码?当然,它可能会混淆它,但这只会让它变得更难。此外,对于向服务器提交高分的游戏,在将这些分数发送到服务器之前修改这些分数是不是非常容易?我知道甚至Flash文件都可以被反编译,但是它们可以被混淆,并且flash反编译并不像在JS中修改数据那么容易 - 可以使用像Firebug这样的插件轻松完成。我想知道大家对此的看法。
答案 0 :(得分:8)
在客户端上解析的Javascript永远不会100%安全。将始终成为了解其功能的方法。几天前我甚至看过一个解压缩包装的工具,所以你唯一可以做的就是使用“丑陋”的变量名称(或者实际上,让一个javascript包装器将你的“好”变量名称转换为短/丑/无意义的)
为了保护游戏结果,您必须将一些游戏逻辑移动到服务器,以便客户端无法发送任意结果。
总结一下:不要把秘密放在javascript代码中,也不要相信来自客户端的任何内容 - 无论是来自表单还是通过javascript生成/提交。
答案 1 :(得分:0)
你说对于向服务器发送高分的游戏来说,修改javascript和伪造请求太容易了吗?
除了案例,当您在客户端上使用某些加密技术时,这是伪造此类请求的最简单方法,甚至不分析脚本,而是自己发送错误请求。您在服务器和浏览器之间发送的所有内容都可以在计算机上轻松查看,分析和更改。