Nodejs中使用 Eletron 或者 nw.js 代码保密性就和前端一样?

发布于 1周前 作者 phonegap100 来自 nodejs/Nestjs

Nodejs中使用 Eletron 或者 nw.js 代码保密性就和前端一样?
安装完就一览无遗?


另:是否能开发出类似于 mysql 数据库管理软件的这一类客户端直接连接(不是 B/S 模式,是直接连数据库,不设服务端)的软件。


刚试验了 hello word ,请原谅我伸手…资料实在 google 不到多少。

14 回复

对,就是这样。另外你可以用 asar 打包,防一下小白。


JS 压缩和合并,只能这样了。加密什么的用原生插件吧

第一个问题:谷歌一下,能找到关于 JS / Electron 加密的解决方案,商用的,要钱
第二个问题:现在有一种叫做 BaaS 的东西,你可以了解一下

第一个问题:对,一览无余,加密然并卵。
第二个问题:可以, nodejs 有 mysql 的驱动模块, nw 和 electron 可以 npm install 后直接使用。
额外说一句, C/S 模式要考虑软件更新,其实没有 B/S 方便

cs 和 bs 模式我都很清楚,也算是属于业内人士吧…



baas 当然知道。


我主要进行企业内部应用开发,谢谢建议。

补一刀, nw 开发的时候 debug 非常的痛。

忘了前两天看到谁说的, Google 的 recaptcha ,为了防止被窥探内部机制,自己实现了个 Js 的虚拟机…可以试试?

关键词:「 node webkit vm snapshot 」 https://github.com/miklschmidt/node-nw-snapshot

不要直接在客户端连接数据库,这样只要软件逆向拿到密码你就 GG 了

感谢提醒,这个缺陷是容许的…

用 C++写然后用 emscripten 或者用 emscripten 编译一个 v7 JS 环境,执行字节码。。方法多的是,就看效率了.

关键部分用 C++写成一个 module 行不行?

好神奇的需求

在Node.js环境中使用Electron或nw.js来构建桌面应用程序时,代码保密性的确面临与前端类似的挑战。这两者都是基于Web技术(HTML、CSS、JavaScript)来构建跨平台桌面应用的框架,因此代码本质上是以明文形式存在的,容易被反编译和查看。

以下是一些基本的代码保护措施,但请注意,这些措施并不能完全防止代码被破解:

  1. 代码混淆(Obfuscation): 使用工具如UglifyJSTerser对JavaScript代码进行混淆,增加阅读难度。

    terser input.js -o output.min.js --compress --mangle
    
  2. 代码拆分: 将敏感逻辑拆分到服务器端,桌面应用仅作为客户端与服务器进行通信,减少暴露敏感信息的风险。

  3. 加密关键数据: 对敏感数据(如API密钥、用户信息等)进行加密存储和传输。

  4. 使用Native模块: 将部分核心逻辑用C++等语言编写为Node.js的Native模块,这些模块编译为二进制文件,增加了反编译的难度。

    // 示例:简单的C++ Native模块
    #include <napi.h>
    
    Napi::String Method(const Napi::CallbackInfo& info) {
        Napi::Env env = info.Env();
        return Napi::String::New(env, "Hello from C++");
    }
    
    NAPI_MODULE(NODE_GYP_MODULE_NAME, Init) {
        return Napi::Function::New(env, Method, "hello");
    }
    

尽管有这些措施,但完全防止代码被逆向工程是不可能的。因此,设计应用时应考虑即使代码被破解,也不会导致严重的安全风险。

回到顶部