首页 > 非开源js如何防止源码泄露?

非开源js如何防止源码泄露?

非开源的js框架有没有方法阻止别人查看源码?


我想到的是只能用代码混淆,Javascript是client-side脚本,不能完全阻止查看源码。

另外,这个链接中提到的第一个方法算是防盗链了。后面又给出了一个链接,讲得貌似是将代码加密成一张图片,然后只支持现代浏览器(Modern Web Browsers),也是防君子不防小人的方法。

其实真的有Encode就Decode,所以说只要让别人破译密文花费的代价(远)大于获取到的明文的价值,这就成功了。

源有益~


uglifyjs这类的混淆器,可以让代码变成很难读的样子,即使重新格式化,变量名也都变成了a,b,c,d这种。
这种情况下要读懂已经有一定难度了,但别人要真正想逆向你的话,一样可以通过单步等手段来摸清你的代码执行流程,梳理出逻辑来。
简单说就是不可能完全不让别人看到,只是让别人付出相当大的代价。


有加密就有可逆~


把所有 JavaScript 代码转换成零宽字符(或者其他一一对应字符),
浏览器执行的时候,再用脚本把零宽字符转换成源码然后执行。
查看源码在视觉上就消失了。

可是源码体积变大,也降低了脚本执行效率。安全性和稳定性可能也没有保障,具体还不太了解。
从没看到有人这么做过。

简单说就是不可能完全不让别人看到,别人一样可以自己用脚本转换字符,让别人付出更大的代价同时也让自己付出代价..


个人感觉前端的脚本基本是公开的,虽然代码混淆能给阅读代码增加难度,但是在sublime这样的神器面前也会降低许多难度。如果是真的特别重要的核心商业机密,能交给后台服务器的尽量交给后台服务器吧。前端的重点作用是在展现,表现力更重要,前端用各种别人的东西比较多^_^做混淆的目的更多的是减小脚本的体积。。。


前端代码估计没有加密之说


JavaScript再变相也是明文传播代码。又不可能像PHP的Zend加密那样要求用户的浏览器上有特定组件……所以JS加密无非只好使用这些minify/uglify/混淆代码逻辑等等这些小的手段。

但有一个重要的考虑因素是:代码能隐藏住,代码的逻辑藏不住。代码无论写成什么样子,代码做的事情用调试器一跟踪就出来。

JS的加密和破解就像是一场结束不了的军备竞赛。我的建议是:

【热门文章】
【热门文章】