可以使用具有合理的未使用代码的库吗?

时间:2018-02-11 19:16:36

标签: java android security gradle

我有一个Java项目库(ProjectLib),它用于更大解决方案的几个不同服务/项目中。这个库有我需要的几个类,我正在创建的Android App。

所以我在build.gradle中使用这个:

implementation project(':ProjectLib')

同样在Settings.gradle中:

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

这个lib有一些明智的和未使用的类,比如数据库访问。如果应用程序没有使用这些类,它将被放入APK?发布此应用程序并破坏公司主要数据库等安全方面存在风险吗?

我的意思是,我应该将明智的未使用的类拆分到另一个lib并重做所有其他使用它的项目吗?因为这个安全问题?

3 个答案:

答案 0 :(得分:1)

你问的是错误的问题。

含义:您的APK应该从不向世界公开安全相关信息!您的APP是否实际上依赖于某些特定类并不重要。

其他答案在以下意义上是正确的:您可以使用此技术或该技术微调进入APK的确切内容。但正如所说,真正的答案是从不在APK中提供秘密的内容。

(仅供记录:服务器名称或IP地址秘密)

答案 1 :(得分:0)

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

要从APK中删除未使用的类,您可以使用ProGuard。 ProGuard还可以对您的代码进行模糊处理。

答案 2 :(得分:0)

Android应用程序中明智开发和未使用的java库类不太可能包含这样的可利用元素,以至于它是一种安全威胁。

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

请记住,“其他”应用程序还可以包含类和库。

另请注意,大多数情况下应用程序仅使用所包含的库jar的一小部分。 如果只使用一小部分番石榴是可以的,那么也可以使用你图书馆的一小部分。

那就是说你也希望你的.apk合理的大小。像ProGuard这样的混合器可以帮助减小应用程序的大小,并删除未使用的代码。 ProGuard不仅可以删除未使用的类,还可以删除已使用类中未使用的方法。

无论如何要定义解决方案的安全性,您需要定义解决方案受到保护的威胁。 (威胁分析)