可以使用具有明智的未使用代码的库



我有一个Java Project库(ProjectLib(,该库用于更大解决方案的几个不同服务/项目。该库有几个我要创建的Android应用需要几个类。

所以我在build.gradle中使用了这样的使用:

implementation project(':ProjectLib')

也在设置中:

include ":ProjectLib"
project(":ProjectLib").projectDir = file("../ProjectLib")

此lib具有一些明智的且未使用的类,例如数据库访问。如果应用程序未使用这些类,它将放入APK中?有任何发布此应用程序并损害任何安全方面的风险,例如公司的主要数据库?

我的意思是,我是否应该将明智的类别不使用的类别分配给另一个LIB并返回所有其他使用它的项目?由于这种安全问题?

您问了错误的问题。

含义:您的APK应该永远不会向世界展示安全性相关信息!您的应用程序实际上是否依靠某些特定类都没有关系。

其他答案在以下意义上是正确的:您可以使用此技术或该技术微调APK中的确切内容。但是,正如所述, real 答案是从不在APK中具有 Secrets 的内容。

(仅用于记录:服务器名称或IP地址是不是秘密(

即使未使用的类也将默认情况下包含在最终APK文件中。

要从APK中删除未使用的类,您可以使用Proguard。proguard也可以混淆您的代码。

不太可能在Android应用程序中明智地开发和未使用的Java库类包含这样的可利用元素,以致是安全威胁。

除非这些类是一般的安全威胁。

请记住,"其他"应用程序还可以包括类和库。

还请记住,大多数时间应用程序仅使用包含库罐的一小部分。如果可以只使用番石榴的一小部分,那么也可以使用库的一小部分。

说您也想让.APK合理尺寸。诸如Proguard之类的肥胖器可以帮助减小应用程序的大小以及删除未使用的代码。proguard不仅可以删除未使用的类,还可以删除未使用的类别中的未使用的方法。

在任何情况下,要定义解决方案的安全性,您需要定义解决方案的威胁。(威胁分析(

最新更新