|
|
导航: |
论坛 -> Web应用开发
斑竹:bodies |
|
作者: |
|
2017/7/26 12:22:42 |
标题: |
专题讨论:纯js开发方案的源码保护问题 |
浏览:2345 |
|
加入我的收藏 |
楼主: |
对于纯js的开发方案,对于如何保护源代码这个问题始终不太明白,特别是当你开发的是一个通用产品,并且想通过销售产品的形式来获取收入的时候,这个问题就显得更加重要了!这个问题估计大家也会遇到,故专门开个贴,集思广益!
----------------------------------------------
- |
作者: |
|
2017/7/26 12:24:30 |
1楼: |
目前普遍使用的混淆方式,可靠吗?
----------------------------------------------
-
|
作者: |
|
2017/7/26 12:43:32 |
2楼: |
不可靠。只要黑客看上,没什么源码保护方案真的可靠。要保护的就直接保护伺服器,甚至分散使用不同国家的伺服器外加保护方案。卖的是服务而不在是翻译码/源码。
----------------------------------------------
-
|
作者: |
gmxyb (gmxyb) |
★☆☆☆☆ |
-
|
普通会员 |
|
2017/7/26 13:04:06 |
3楼: |
看哪种“纯js”了。。。 如果你用 fibjs(一个类似nodejs的东东)写的系统,是可以编译js为二进制的。
----------------------------------------------
-
|
作者: |
star5 (星五) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/7/26 14:37:55 |
4楼: |
我目前的形式:(webpascal脚本模型) 服务端是exe,自己解析脚本,所以一些重要功能是写在exe里面的,由脚本去调用。
比如用户登录,脚本中这样写: <? if checklogin(query('user'),query('pwd')) then '登录成功' else '登录失败' ?> 而checklogin是一个内置函数,在exe中的,具体如何验证user和pwd的,看不到。 以上只是举例,实际操作中,只有重要功能才单独写,通用功能脚本中就实现了。
当然,也可以将脚本全部加密,只用专门的工具编辑,服务端解密并运行……
其它,楼主可以参考php的一些加密方式,具体请百度。
----------------------------------------------
博客 - http://offeu.com 脚本模型 - http://webpascal.com 需要短信接口的请联系我,可发行业与营销内容。
|
作者: |
|
2017/7/26 18:40:20 |
5楼: |
个人拙见: 第一步:混淆一下已经足够了,没有资料的源代码是一堆垃圾。不卖产品卖服务。学Intel,新产品做出来了先放仓库里,挤牙膏,一步一步升级。
第二步:混淆不够咋办? 方案1. 核心功能代码用C++写。 方案2. 核心函数放在自己的服务器上,远程运算。学shuDePB,至今无法破解。
----------------------------------------------
-
|
作者: |
|
2017/7/26 21:13:08 |
6楼: |
有类似的JS打包之类的,将所有JS生成到一个文件打乱,
----------------------------------------------
-
|
作者: |
|
2017/7/26 23:27:48 |
7楼: |
纯js么?先把各版本浏览器的兼容性、各种解释器、各种缓存问题解决了再来考虑什么保护的问题。
另外,如果要考虑后台的话,那么可以选择的多了去了。例如php这些。还需要搞c++么。。。
----------------------------------------------
--
|
作者: |
|
2017/7/27 8:36:45 |
8楼: |
是的,我觉得保护应该放在后台,后台再怎么盗不了。我用的free pascal做得后台,再过一段时间整理好会有开放源码计划。
----------------------------------------------
-
|
作者: |
|
2017/7/27 8:39:56 |
8楼: |
选择一个合适的前端框架,jQuery/Extjs/React/Vue/Angular,看你喜欢用哪个,浏览器的兼容问题就不需要考虑了。 后台用Nodejs, C++ Add-on既可提速又能加密。
----------------------------------------------
-
|
作者: |
akay (akay) |
★☆☆☆☆ |
-
|
普通会员 |
|
2017/7/27 9:59:22 |
9楼: |
我正在用react native,前端没什么可保密的,都是通过api方式实现。程序要做到,就算把前端代码给别人,也破坏不到你的系统。 要转变思路
----------------------------------------------
-
|
作者: |
|
2017/7/27 10:11:16 |
10楼: |
然后断网了。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2017/7/27 15:51:19 |
11楼: |
人家的前提是纯JS。楼上都不纯。 要纯JS,就混淆吧。
我们买的别人的JS开发包,混淆过的。100万人民币一套。反混淆也不难,已经反了一些。人家也不在乎,你反了才好,售后技术支持的压力还小些。有问题自己解决了。
----------------------------------------------
-
|
作者: |
|
2017/7/27 16:18:18 |
12楼: |
JS还要买吗,还100万一套,打开网页到处都是,想怎么抄,就怎么抄,都下载到了你电脑里了。
----------------------------------------------
他们总是取笑失败者,以酷似智者;他们也总是为成功者喝采,以取得赏金。
|
作者: |
|
2017/7/27 16:34:56 |
13楼: |
补充一下,我说的兼容性并不是单纯的说的页面元素。而是业务逻辑。 一些解释器之间会存在一些解释上的一些区别。你搞不好就掉坑里去了。
另外还有一个非常恶心的问题就是cookie的缓存问题。
其他一些乱七八糟的坑我就不说了,有兴趣的可以去问问那些网页专家看看都有那些坑。
再有就是,js框架还需要买??所有代码都已经暴露给你了,还买什么?混淆有蛋用么?混淆无非就是让人读起来费劲罢了。你总不能混淆到连解释器都不认识了吧?
----------------------------------------------
--
|
作者: |
|
2017/7/27 17:29:51 |
14楼: |
回12楼,专业应用的包,别人造轮子,我们造车就好了。 https://www.int.com/products/geotoolkit/
----------------------------------------------
-
|
作者: |
|
2017/7/27 17:34:37 |
15楼: |
你反编译了,就可以复制轮子了。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2017/8/2 22:04:39 |
16楼: |
有興趣的人可以參考一下『http://webassembly.org/』 這個是將javascript編譯成binary,ˇ讓瀏覽器可以載入直接用,基本上主流的瀏覽器都支援了,以後瀏覽器慢慢會變成類似現在的作業系統一樣的角色,雖然還有一段路,但是輪子的樣子已經出來了喔.
如果比較急的人,也可以參考一下WEBPaCK 『https://webpack.github.io/』的做法,基本上會讓原始碼比較難debug,不過遇到高手高手高高手的話,還是無效.只是時間問題.
----------------------------------------------
-
|
作者: |
|
2017/8/3 20:53:16 |
17楼: |
1,一定要写成库的形式,增加阅读复杂度; 2,代码做混淆; 3,用a,b,c,d,e,f等替换有效文件名,总之就是让活人看不懂就对了。
----------------------------------------------
相信自己,若自己都不相信,那还有谁可信。
|
作者: |
icyf (fun) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/8/19 20:04:40 |
18楼: |
廖雪峰的python中写着,谁有心思来看你的烂代码啊
----------------------------------------------
-
|
|