我最近开发了一个具有electron
框架的应用,在阅读了与电子javascript代码有关的安全性问题后,现在担心源代码保护。
我的意思是,即使该应用程序是为生产而构建的,也可以对代码进行反向工程。我的应用程序包含许多重要信息,例如[AutoUpdate]的GitHub Private Token
等。
我刚刚经历了很多SO帖子,但没有找到完美的答案,因此可以解决问题。电子无法对JavaScript代码或源代码进行混淆处理吗?但是,混淆并不能完全保护代码,但是会使逆向工程变得复杂。如果有解决方法,请告诉我。在电子安全相关的职位中,我没有找到超过tl;dr
的信息。
[我发现了obfuscator的混淆方法,但似乎它需要手动混淆,并且与NW.js
中的源代码保护没什么关系,有没有更好的方法来实现它?
我发现一些有助于混淆Medium post的东西。但未发现有关源保护的任何信息。
tl; dr您可以,而且不值得付出努力。只需将您的源文件打包到asar
文件中,即可使大多数人远离它。
长篷:
asar
选项。否则,您的文件是脚本,所有这些步骤只会减慢攻击者的速度(多种防御策略),但不会阻止它们访问它们。 devTools非常易于打开,人们将能够以某种方式,形状或形式阅读代码。如果有人得到了您的混淆代码,则可以很容易地重新构造正在发生的事情(请参阅此处以供参考:https://www.youtube.com/watch?v=y6Uzinz3DRU)
如果您想保护自己免受代码操纵,有更好的方法。像散列,上下文隔离等一样,电子在此问题上有一整章。
https://github.com/electron/electron/blob/master/docs/tutorial/security.md
Obfuscation
不是您的问题的答案,也无法解决您的问题。您可以通过混淆来使代码变得复杂并且难以对其进行反向工程,但是如果代码包含如此重要的令牌(例如github令牌),您的代码仍然容易受到攻击。有一种方法可以精确保护这些细节。您需要一个本机模块,可以隐藏此类详细信息。关于本机模块here有很好的解释。 TL; DR,所以您必须自己做。仍然对我来说似乎并不完美,但这可以是一种方法。