如何对电子js进行源代码混淆和保护源代码

问题描述 投票:1回答:2

我最近开发了一个具有electron框架的应用,在阅读了与电子javascript代码有关的安全性问题后,现在担心源代码保护。

我的意思是,即使该应用程序是为生产而构建的,也可以对代码进行反向工程。我的应用程序包含许多重要信息,例如[AutoUpdate]的GitHub Private Token等。

我刚刚经历了很多SO帖子,但没有找到完美的答案,因此可以解决问题。电子无法对JavaScript代码或源代码进行混淆处理吗?但是,混淆并不能完全保护代码,但是会使逆向工程变得复杂。如果有解决方法,请告诉我。在电子安全相关的职位中,我没有找到超过tl;dr的信息。

[我发现了obfuscator的混淆方法,但似乎它需要手动混淆,并且与NW.js中的源代码保护没什么关系,有没有更好的方法来实现它?

我发现一些有助于混淆Medium post的东西。但未发现有关源保护的任何信息。

javascript security electron obfuscation code-security
2个回答
1
投票

tl; dr您可以,而且不值得付出努力。只需将您的源文件打包到asar文件中,即可使大多数人远离它。

长篷:

  • [构建应用程序时使用asar选项。
  • 用丑陋的代码混淆。
  • 使用WASM
  • 语言绑定可从编译格式中获取数据
    • neonjs for Rust
    • C#的Edge-js
    • N-API,C / C ++的NAN

否则,您的文件是脚本,所有这些步骤只会减慢攻击者的速度(多种防御策略),但不会阻止它们访问它们。 devTools非常易于打开,人们将能够以某种方式,形状或形式阅读代码。如果有人得到了您的混淆代码,则可以很容易地重新构造正在发生的事情(请参阅此处以供参考:https://www.youtube.com/watch?v=y6Uzinz3DRU

如果您想保护自己免受代码操纵,有更好的方法。像散列,上下文隔离等一样,电子在此问题上有一整章。

https://github.com/electron/electron/blob/master/docs/tutorial/security.md


0
投票

Obfuscation不是您的问题的答案,也无法解决您的问题。您可以通过混淆来使代码变得复杂并且难以对其进行反向工程,但是如果代码包含如此重要的令牌(例如github令牌),您的代码仍然容易受到攻击。有一种方法可以精确保护这些细节。您需要一个本机模块,可以隐藏此类详细信息。关于本机模块here有很好的解释。 TL; DR,所以您必须自己做。仍然对我来说似乎并不完美,但这可以是一种方法。

© www.soinside.com 2019 - 2024. All rights reserved.