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

2016-01-22 03:01:31 +08:00
 idoldog
Function.prototype.toString = function () { return "[native code]" }

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

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

5043 次点击
所在节点    JavaScript
19 条回复
idoldog
2016-01-22 03:03:58 +08:00
详细方法可以参考这个贴子:

http://www.v2ex.com/t/151771
FrankFang128
2016-01-22 07:45:40 +08:00
无法保护
aivier
2016-01-22 08:22:20 +08:00
能执行,就能解密...
finian
2016-01-22 08:28:33 +08:00
想多了,下发到客户端的 JavaScript 代码防不了破解,只能增加破解成本
lxrmido
2016-01-22 08:41:40 +08:00
自欺欺人的感觉……
morethansean
2016-01-22 09:05:05 +08:00
...难道别人看你代码是通过 toString ?
tabris17
2016-01-22 09:06:50 +08:00
这不自欺欺人么
Hiufan
2016-01-22 09:15:36 +08:00
前端何苦难为前端...
zhuangzhuang1988
2016-01-22 09:32:19 +08:00
用 scala.js, 或者 clojurescript 试试看. 编译后的代码太好看了
luoway
2016-01-22 10:02:19 +08:00
@Hiufan 貌似后端转前端的才会不想代码被看到。
曾问个同项目的后端同学看看他的后端代码,好交流一下怎么前后端协作分工,他绕着弯说不能给。

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

然后用 C++写前端……
fuyufjh
2016-01-22 12:29:38 +08:00
@morethansean 同感。。。
onceyoung
2016-01-22 12:37:48 +08:00
别的思路我不知道,不过把那你们的代码写的自己都看不懂,就相当于加密了...
ChiChou
2016-01-22 12:42:40 +08:00
mcfog
2016-01-22 12:51:50 +08:00
完全没用

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

xiongxin8802
2016-01-22 20:58:18 +08:00
dart2js
idoldog
2016-01-27 19:31:43 +08:00
悲剧啊~~~

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

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

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

https://www.v2ex.com/t/252516

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

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

© 2021 V2EX