[Javascript] Javascript 源码保护的一个办法

2016 年 1 月 22 日
 idoldog
Function.prototype.toString = function () { return "[native code]" }

这样当用户调用 functionA.toString() 的时候就看不到源码了。

各位高手帮忙 review 下,看看有没有漏洞。

5833 次点击
所在节点    JavaScript
19 条回复
idoldog
2016 年 1 月 22 日
详细方法可以参考这个贴子:

http://v2ex.xtra.eu.org/t/151771
FrankFang128
2016 年 1 月 22 日
无法保护
aivier
2016 年 1 月 22 日
能执行,就能解密...
finian
2016 年 1 月 22 日
想多了,下发到客户端的 JavaScript 代码防不了破解,只能增加破解成本
lxrmido
2016 年 1 月 22 日
自欺欺人的感觉……
morethansean
2016 年 1 月 22 日
...难道别人看你代码是通过 toString ?
tabris17
2016 年 1 月 22 日
这不自欺欺人么
Hiufan
2016 年 1 月 22 日
前端何苦难为前端...
zhuangzhuang1988
2016 年 1 月 22 日
用 scala.js, 或者 clojurescript 试试看. 编译后的代码太好看了
luoway
2016 年 1 月 22 日
@Hiufan 貌似后端转前端的才会不想代码被看到。
曾问个同项目的后端同学看看他的后端代码,好交流一下怎么前后端协作分工,他绕着弯说不能给。

前端加密目前都只是增加解密成本,做到混淆精简这一步就足够阻止无心人阅读了,但防不了有心人解密。
@idoldog 这帖 letv 那个代码自带解密方法,纯属吓唬非前端。
akagi
2016 年 1 月 22 日
其实没人想过做个类似 VProtect 那样的虚拟机壳么?
akagi
2016 年 1 月 22 日
@akagi VMProtect, 另外一楼的链接中也有人提到了。
dqh3000
2016 年 1 月 22 日
其实我一直在考虑用 emscripten ……

然后用 C++写前端……
fuyufjh
2016 年 1 月 22 日
@morethansean 同感。。。
onceyoung
2016 年 1 月 22 日
别的思路我不知道,不过把那你们的代码写的自己都看不懂,就相当于加密了...
ChiChou
2016 年 1 月 22 日
mcfog
2016 年 1 月 22 日
完全没用

就连楼主认为的“防止在控制台打印函数源码”的用都没有

xiongxin8802
2016 年 1 月 22 日
dart2js
idoldog
2016 年 1 月 27 日
悲剧啊~~~

前端代码怎么保护起来?特别是现在像基于 JS 的客户端开发逐渐增多的情况下。

大家可以看一下『蜻蜓 FM 』作弊的事情,就知道为什么要加密代码了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/252516

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX