【发布时间】:2020-01-25 22:57:33
【问题描述】:
我最近开发了一个带有 electron 框架的应用程序,在阅读了与电子 JavaScript 代码相关的安全问题后,我现在担心源代码保护。
我的意思是即使应用程序是为生产而构建的,也可以对代码进行逆向工程。我的应用程序包含许多重要信息,例如用于自动更新的 GitHub Private Token 等等。
我刚刚浏览了许多 SO 帖子,但没有找到完美的答案,因此请解决问题。使用电子无法混淆javascript代码或源代码保护?然而,混淆并不能完全保护代码,但它会使逆向工程变得复杂。如果有解决方法,请告诉我。我在电子的安全相关帖子中没有找到超过tl;dr。
我通过obfuscator 找到了一种混淆方法,但似乎需要手动混淆,并且与NW.js 中的源代码保护无关。有没有更好的方法来实现它?
我在Medium post 上发现了一些有助于混淆的内容。但没有找到任何关于源代码保护的信息。
【问题讨论】:
-
第一个问题应该是:“如果它对安全性至关重要 - 为什么需要客户端的那些”?如果某些事情真的很重要,那么混淆就是错误的路径-而是以无需这些凭据即可工作的方式更改您的应用程序-例如将这些数据外部化到 Internet 上的服务器。
-
似乎不可能,考虑客户端
JWT token签名验证的情况,我必须存储JWT秘密客户端。在另一种情况下,考虑我使用Github提供程序为AutoUpdate并且我必须有一个GitHub Private repo 令牌客户端。我知道混淆并不能完全解决问题,但它可能有助于使找出这些细节变得复杂。 -
您的应用似乎有问题。据我所知,JWT 令牌是在身份验证服务器上创建的,而不是由客户端应用程序创建的。因此,客户端应用不需要“签名”新的 JWT 令牌,因此不需要 JWT 签名密钥。
-
好的,同意你关于
JWT Token的另一个令牌呢? -
即使您设法混淆了代码,也有像lelinhtinh.github.io/de4js 这样的工具可以自动撤消大部分混淆。您应该假设存储在应用程序中的任何数据都可以并且将会被有足够积极性的用户读取。
标签: javascript security electron obfuscation code-security