Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的安全/保护代码_Javascript_Flash_Html_Obfuscation - Fatal编程技术网

JavaScript中的安全/保护代码

JavaScript中的安全/保护代码,javascript,flash,html,obfuscation,Javascript,Flash,Html,Obfuscation,随着最近关于JavaScript和HTML5取代Flash的大肆宣传,我想知道——如何保护客户端js代码?当然,混淆它是可能的,但那只会使它变得更难。此外,对于向服务器提交高分的游戏,在将分数发送到服务器之前修改这些分数不是非常容易吗?我知道即使是Flash文件也可以反编译,但它们可以被混淆,Flash反编译也不像在JS中修改数据那么容易——可以使用Firebug之类的插件轻松完成。我想知道每个人对此的看法。在客户端解析Javascript永远不会100%安全。总会有办法找到它的作用。几天前,我

随着最近关于JavaScript和HTML5取代Flash的大肆宣传,我想知道——如何保护客户端js代码?当然,混淆它是可能的,但那只会使它变得更难。此外,对于向服务器提交高分的游戏,在将分数发送到服务器之前修改这些分数不是非常容易吗?我知道即使是Flash文件也可以反编译,但它们可以被混淆,Flash反编译也不像在JS中修改数据那么容易——可以使用Firebug之类的插件轻松完成。我想知道每个人对此的看法。

在客户端解析Javascript永远不会100%安全。总会有办法找到它的作用。几天前,我甚至看到了一个工具,它可以解压打包的javascript,所以你唯一能做的就是使用“丑陋”的变量名(或者,让javascript打包器将你的“好”变量名转换为短/丑陋/无意义的变量名)

为了保护游戏结果,您必须将一些游戏逻辑移动到服务器,以便客户端无法发送任意结果


总结:不要把秘密放在javascript代码中,也不要相信来自客户端的任何东西——不管它是来自表单还是通过javascript生成/提交的。

你说对于向服务器发送高分的游戏来说,修改javascript和伪造请求太容易了


除此之外,当您在客户机上使用一些加密技术时,伪造此类请求是最简单的方法,甚至不分析脚本,而是发送错误的请求本身。您在服务器和浏览器之间发送的所有内容都可以在计算机上轻松查看、分析和更改。

谢谢。即使我移动了一些游戏逻辑,生成要发送到服务器的数据的算法仍然非常开放。此外,这不是HTML5采用的一个重要因素,尤其是在游戏方面?人们为什么/如何预测flash即将退出市场?flash几乎和javascript一样不安全。有很多很好的actionscript反编译器,即使不可能,您仍然可以嗅探发送到服务器的请求。除此之外,很多flash游戏只是为了好玩,而不是为了奖励等。因此,人们是否在那里作弊根本不重要。很抱歉一再问这个问题,但这不是HTML5采用的一个巨大因素吗?此外,嗅出请求并不像查看源代码那么容易。此外,还有一些flash游戏门户网站,在那里获得高分可以让你赚钱,所以作弊在那里很重要。这些网站很可能会继续使用flash,或者在服务器端添加理智检查。例如(当然取决于游戏),你可以确保在游戏开始和结束之间有足够的时间。显然,只有合理的分数才应该被接受——即拒绝不自然的高分。除此之外:想在这样一个网站上作弊以获得更多金钱/奖励的人会嗤之以鼻。如果目前没有健全性检查,这可能会更容易,因为开发人员依赖于来自flash的数据是可信的,而不是更可读的代码,其响应不是简单地被接受为有效的。