首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止Node js代码被盗?

如何防止Node js代码被盗?
EN

Stack Overflow用户
提问于 2019-09-12 03:46:56
回答 3查看 2.7K关注 0票数 2

我需要一些建议。我正在考虑使用NodeJS和Express开发一个新产品。此产品应运行内部部署模式。因为,产品将是信息安全产品,并将保留敏感数据。我只想保证这需要很长时间才能逆转。

那么,如何保护我的代码不被窃取呢?或者NodeJS是正确的选择?

你有什么教程或建议吗?

谢谢并致以最良好的问候..

EN

回答 3

Stack Overflow用户

发布于 2019-09-12 05:36:55

如果您分发服务器软件,以便您的客户可以在本地运行服务器,那么您根本无法保护您的服务器源代码。如果node.js可以运行它,那么在您的客户站点上对服务器具有物理访问权限的任何人也可以看到源代码。

如果您的客户启用了适当的保护,您的服务器源代码将不会对外界开放,但您必须依赖您的客户正确地安装和保护这些东西。

您可以在分发源代码之前对其进行模糊处理。这种重命名所有变量以赋予它们无意义的名称的模糊处理根本不是一种真正的安全形式,但它确实使反向工程能够理解您的代码做了更多的工作(潜在地阻止了一些人投入额外的工作),但它并不能阻止决心坚定的黑客进行反向工程。

如果你想要保护的秘密信息相对较少,那么一个有决心的黑客可以通过模糊处理的额外工作,仍然可以找到你的算法。

最后,完全保护您的工作内部的唯一真正的方法不是分发您的源代码(无论是什么语言或环境),也不是运行一个服务并让客户访问您的服务。即使使用像C++这样的完全编译的语言(没有源代码分发),有决心的黑客仍然可以对关键算法或凭证进行反向工程。

如果客户只接受他们购买并在其本地运行的服务器,那么我的猜测是您过度考虑了这个反向工程问题。除了混淆之外,你尝试做的任何事情都会使你的产品和销售复杂化,并使你的销售大幅减少,但无论如何都不能真正阻止决心坚定的黑客。

票数 3
EN

Stack Overflow用户

发布于 2019-09-12 15:34:13

计划A:

  1. 准备自托管节点和DB服务器。然后,
  2. 使用唯一/安全/散列API令牌公开您的安全产品信息的

  1. 每个供应商/公司请求一个端点,其中包含绑定客户端应用程序的消费安全产品信息的令牌。
  2. 然后创建一个客户端应用程序,它可能用于X platform api one time one user的许可证激活过程。如果许可证激活,则执行send back to app client a api token for next request.

当用户或公司安装此客户端应用程序时,他们必须要求许可证密钥app token以及您提供的许可证密钥one time one user or company

所以这个服务器的原始源代码是入口,没有人可以窃取这个脚本和数据库。

票数 1
EN

Stack Overflow用户

发布于 2019-09-12 04:22:30

如果您的业务模式和客户支持这样的想法,即您的公司拥有并操作运行您的软件的硬件(类似于IBM和Oracle的操作方式),并且您的团队中的某个人可以在启动时在本地(这并不总是很方便),那么您可以在Linux上运行Node并使用LUKS加密数据,这将使攻击者(或企业间谍)很难在没有精心设计的黑客攻击的情况下访问代码。

你提到你的服务很敏感。这种方法还有助于减少数据泄露,因为数据库也将被加密。

根据您对可靠性的需求,硬件不需要很贵。你可以设置一个便宜的软件raid 1来复制数据,并在一个小的U盘上安排加密备份。如果预算允许,您也可以在服务器级计算机上运行此安装程序,这些计算机具有硬件said、冗余电源和加密的硬件VNC,这将允许您远程解密LUKS (也就是说,远程VNC并不安全,因为hardware key loggers可能在您不知情的情况下安装在服务器上)。

这种硬件设置每个客户端只花费几百美元,它会让你的服务感觉更“企业”,并保证你的代码不会被篡改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57895869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档