【问题标题】:Run NodeJS server without exposing its source code运行 NodeJS 服务器而不暴露其源代码
【发布时间】:2015-07-29 09:46:41
【问题描述】:

对于一个普通的 NodeJS 实例,我们可以通过node server.js 启动它。这样做的问题是,在生产服务器中,当黑客入侵我的机器时,他们将能够查看和复制我所有的服务器端源代码。这是一个很大的风险,因为源代码包含知识产权。有没有办法防止它发生?

例如,在 Java 中,代码通常内置在 jar 包或 .class 文件中,我们只部署构建的文件。当黑客入侵机器时,他们只能看到jar.class文件,这只是字节码,无法理解。

我的 Python Flask 服务器也有类似的问题。

【问题讨论】:

  • “这只是字节码,无法理解” - 恐怕不准确。如果你想保护你的知识产权,你需要使用法律,而不是技术,手段。
  • @HenryNguyen - 你找到解决办法了吗?

标签: java python node.js source-code-protection


【解决方案1】:

我现在正在寻找 3 种替代方案,并希望听到更多关于此主题的信息:

http://jxcore.com/home/ - “JXcore 是一个带有附加功能的 Node.JS 分支。”它还支持在其他平台上运行nodeJS代码

https://jaredallard.me/nexe/ - “编译你的 Node.js 项目。没有任何源代码。”

http://enclosejs.com/ - “编译你的 Node.js 项目。没有任何源代码。”

【讨论】:

    【解决方案2】:

    你知道反编译java类文件有多简单吗?

    说真的,您将 jar 放入 IntelliJ IDEA(或几乎任何其他 IDE)中,它会吐出足够可读的反编译代码以进行逆向工程。编译代码与解释代码相比没有安全优势。

    与其尝试“加密”或“隐藏”您的 NodeJS 代码,为什么不更好地保护服务器?你永远不会超过人们对你的代码进行逆向工程,你最好保护巧克力所在的盒子而不是毒害巧克力。

    【讨论】:

    • 不过,我不同意。 Java 可能是一个不好的例子,但 C/C++ 有一种方法可以编译/打包产品并将其发布到市场上。例如 MS Office,当最终用户使用该软件时,他们能够对 MS Office 代码进行逆向工程,并找到所有难以理解的逻辑和字节码。这比泄露原始源代码要轻得多。
    • 反编译器仍然存在。我要说明的一点是,您永远不会仅仅通过使代码更难阅读来保护您的代码。你最好防止源代码泄漏,尤其是在 NodeJS 之类的情况下,而不是试图使代码“不可读”。当然,存在 Javascript 缩小器会有所帮助,并且有一些方法可以混淆事物,但总的来说它不应该成为您的重点。
    • @nameless912 反编译并不完美。考虑有混淆技术:)
    • OP 没有询问这个问题。他更关心如何处理隐藏他的 Node.JS 源代码。这可能更适合对原始问题的评论。没有冒犯的意思。和平。
    猜你喜欢
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 2017-01-24
    • 2020-08-11
    • 2018-12-05
    相关资源
    最近更新 更多