如何分发Node JS应用程序?

时间:2017-01-04 09:38:11

标签: javascript node.js api security web

我开发了一个Node js应用程序,我希望以月租金的形式出售给我的客户。

我正在寻找解决方案:

  1. 保持我的源代码安全
  2. 简易客户端安装
  3. 激活的串行代码解决方案
  4. 应用程序更新方法
  5. 任何建议将不胜感激。

    类似问题:Secure distribution of NodeJS applications

1 个答案:

答案 0 :(得分:2)

你的目标

  

保持我的源代码安全

您可以做到的唯一方法是将其作为一个Web应用程序,用作服务而不是分发给客户端。不要相信任何告诉你代码混淆或加密的人,因为这本身就是不可能的。

  

轻松安装客户端

没有比Web应用程序更容易的了。

  

激活的串行代码解决方案

对于Web应用程序,您甚至不需要它。对于您分发给客户端的任何应用程序来说,绕过它是微不足道的,并且无法解决它。

  

应用程序更新方法

Web应用程序始终是最新的。对于分布式应用程序,您可以查看Electron auto updater

  

任何建议将不胜感激。

一般建议

我的一般建议是要记住,分发给客户端的任何Node应用程序都很容易分析源代码并绕过您实现的任何激活功能。在这种情况下,你唯一可以依赖的是法律,而不是技术。确保许可证可执行且条款明确。分发源代码并不意味着它必须是开源的。许可证是重要的,而不是代码的可见性。

您的选择

根据应用程序的功能以及界面的外观,您在问题中没有提及的内容,您可以选择:

  1. 按原样分发应用程序并依赖许可证来保护您,但要了解任何人都可以分析您的源代码,无论您做什么。在这里,您需要管理每个更改的更新。人们将能够规避您的激活码功能。
  2. 使其成为一个Web应用程序,并将其内部工作完全保留给您自己。在这里,您没有更新问题或源代码可见性。无需激活码,您只能向付费客户授予访问权限。
  3. 将其作为服务并将所有重要逻辑保留在后端API中,并仅分发使用该API的瘦客户端。您只需要管理客户端的自动更新,后端代码始终是最新的。您不需要实施激活码,人们只需在客户端程序中登录系统中的帐户,您的后端就会知道谁是付费客户,谁不知道。客户端可见的唯一源代码是客户端代码,它可以是最小的,不必包含任何关键逻辑。
  4. 当然,这完全取决于您所说的应用程序的性质。

相关问题