我知道所有的APK都可以分解和逆向工程。其实我这么做是为了学习。
所以当我使用防火墙云存储和防火墙时。它应该作为SDK包含在我的android项目中,它意味着所有使用防火墙的代码都可能被公开。
使用防火墙的每个查询都会被公开,否则我会使用REST (就像firebase云函数),这样就不可能了。
我是不是遗漏了什么?
发布于 2019-11-01 17:38:06
使用Firebase的应用程序中的业务逻辑通常分布在以下地方:
您的大部分逻辑应该在应用程序代码中。我强烈建议您做出默认选择:将功能直接添加到应用程序中。
如果您的代码是秘密的,或者使用秘密,请将其移到可信的环境中,例如您的开发机器(您经常将它用于给您的团队的用户帐户自定义声明使他们成为管理员)、您已经控制的服务器或云函数。在最后两种情况下,您通常会以某种方式从应用程序中调用服务器端代码,因此您需要考虑如何确保访问的安全,以便只有授权的用户才能运行它(例如,您的auth帐户的团队成员有管理员声明)。
最后看到业务逻辑的地方是您的安全规则。规则中的业务逻辑和服务器端代码中的业务逻辑经常存在分歧,但您经常会看到,您也在将客户端中的业务逻辑重新构建到服务器中,或者作为服务器端代码、作为安全规则,或者是两者的组合。
发布于 2019-11-01 16:46:32
您可以将Firebase函数用于您认为敏感的业务逻辑,而不应该在客户端(Android应用程序)编写。为了使逆向工程变得更加困难,您还可以从android文档( 缩小、混淆和优化应用程序 )中查看混淆您的Android应用程序的内容。
混淆缩短了类和成员的名称,使任何对您的apk进行反编译的人都很难对其进行反向工程。一个例子是当您尝试浏览库的源代码时(例如。( FirebaseAuth),方法名和变量名已被zza、zzb等替换。
https://stackoverflow.com/questions/58662712
复制相似问题