DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: a12315
今日帖子: 43
在线用户: 11
导航: 论坛 -> Web应用开发 斑竹:bodies  
作者:
男 goodboysoft (goodboysoft) ★☆☆☆☆ -
普通会员
2017/7/26 12:22:42
标题:
专题讨论:纯js开发方案的源码保护问题 浏览:2345
加入我的收藏
楼主: 对于纯js的开发方案,对于如何保护源代码这个问题始终不太明白,特别是当你开发的是一个通用产品,并且想通过销售产品的形式来获取收入的时候,这个问题就显得更加重要了!这个问题估计大家也会遇到,故专门开个贴,集思广益!
----------------------------------------------
-
作者:
男 goodboysoft (goodboysoft) ★☆☆☆☆ -
普通会员
2017/7/26 12:24:30
1楼: 目前普遍使用的混淆方式,可靠吗?
----------------------------------------------
-
作者:
男 pp0123 (pp0123) ★☆☆☆☆ -
普通会员
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
需要短信接口的请联系我,可发行业与营销内容。
作者:
男 c5soft (大道至简) ▲▲▲▲▲ -
普通会员
2017/7/26 18:40:20
5楼: 个人拙见:
第一步:混淆一下已经足够了,没有资料的源代码是一堆垃圾。不卖产品卖服务。学Intel,新产品做出来了先放仓库里,挤牙膏,一步一步升级。

第二步:混淆不够咋办?
方案1. 核心功能代码用C++写。
方案2. 核心函数放在自己的服务器上,远程运算。学shuDePB,至今无法破解。
----------------------------------------------
-
作者:
男 mousesoft (MouseSoft) ★☆☆☆☆ -
盒子活跃会员
2017/7/26 21:13:08
6楼: 有类似的JS打包之类的,将所有JS生成到一个文件打乱,
----------------------------------------------
-
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2017/7/26 23:27:48
7楼: 纯js么?先把各版本浏览器的兼容性、各种解释器、各种缓存问题解决了再来考虑什么保护的问题。

另外,如果要考虑后台的话,那么可以选择的多了去了。例如php这些。还需要搞c++么。。。
----------------------------------------------
--
作者:
男 fausten (fausten) ★☆☆☆☆ -
盒子活跃会员
2017/7/27 8:36:45
8楼: 是的,我觉得保护应该放在后台,后台再怎么盗不了。我用的free pascal做得后台,再过一段时间整理好会有开放源码计划。
----------------------------------------------
-
作者:
男 c5soft (大道至简) ▲▲▲▲▲ -
普通会员
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方式实现。程序要做到,就算把前端代码给别人,也破坏不到你的系统。
要转变思路
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/7/27 10:11:16
10楼: 然后断网了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2017/7/27 15:51:19
11楼: 人家的前提是纯JS。楼上都不纯。
要纯JS,就混淆吧。

我们买的别人的JS开发包,混淆过的。100万人民币一套。反混淆也不难,已经反了一些。人家也不在乎,你反了才好,售后技术支持的压力还小些。有问题自己解决了。
----------------------------------------------
-
作者:
男 mprjcf (mprjcf) ★☆☆☆☆ -
普通会员
2017/7/27 16:18:18
12楼: JS还要买吗,还100万一套,打开网页到处都是,想怎么抄,就怎么抄,都下载到了你电脑里了。
----------------------------------------------
他们总是取笑失败者,以酷似智者;他们也总是为成功者喝采,以取得赏金。
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2017/7/27 16:34:56
13楼: 补充一下,我说的兼容性并不是单纯的说的页面元素。而是业务逻辑。
一些解释器之间会存在一些解释上的一些区别。你搞不好就掉坑里去了。

另外还有一个非常恶心的问题就是cookie的缓存问题。

其他一些乱七八糟的坑我就不说了,有兴趣的可以去问问那些网页专家看看都有那些坑。


再有就是,js框架还需要买??所有代码都已经暴露给你了,还买什么?混淆有蛋用么?混淆无非就是让人读起来费劲罢了。你总不能混淆到连解释器都不认识了吧?
----------------------------------------------
--
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2017/7/27 17:29:51
14楼: 回12楼,专业应用的包,别人造轮子,我们造车就好了。
https://www.int.com/products/geotoolkit/
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/7/27 17:34:37
15楼: 你反编译了,就可以复制轮子了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 a07272 (Allen) ★☆☆☆☆ -
盒子活跃会员
2017/8/2 22:04:39
16楼: 有興趣的人可以參考一下『http://webassembly.org/
 這個是將javascript編譯成binary,ˇ讓瀏覽器可以載入直接用,基本上主流的瀏覽器都支援了,以後瀏覽器慢慢會變成類似現在的作業系統一樣的角色,雖然還有一段路,但是輪子的樣子已經出來了喔.

如果比較急的人,也可以參考一下WEBPaCK 『https://webpack.github.io/』的做法,基本上會讓原始碼比較難debug,不過遇到高手高手高高手的話,還是無效.只是時間問題.
----------------------------------------------
-
作者:
男 letianwuji (大器晚成) ▲▲▲▲▲ -
普通会员
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中写着,谁有心思来看你的烂代码啊
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS