将Log.i保留在生产中是否安全?

时间:2014-04-02 11:06:25

标签: android android-logcat

在我的Android应用程序中,我广泛使用Log.iLog.e

在这些命令中,我通常传递与我的应用程序通信的SQLite查询或http rest URL。

我的问题是:当应用程序到达Play商店时保留这些日志是否安全?如果用户在他的计算机上连接了设备的情况下运行应用程序,他是否可以在他的LogCat上查看日志消息?

4 个答案:

答案 0 :(得分:3)

如果用户将设备连接到计算机并阅读logcat,他们可以看到应用生成的所有日志消息。

可能的解决方案是使用Proguard删除(自动)所有日志消息。

有关此答案的更多信息:How to configure proguard to ONLY remove android logging calls

希望它有所帮助。

答案 1 :(得分:2)

是的,用户将能够读取这些日志文件。这是安全的吗? 要看。你的休息电话或sqlite查询是秘密吗?例如,无论如何都可以使用wireshark读取所有网络通信。

当我发布我的应用程序时,我做的是:我使用方法i,d,e等创建我自己的Log类并使用此Log类而不是Android类,因为那时我可以使用像{{1这样的简单开关根据我写入LogCat或者不写。这样我就可以在应用程序中保留所有日志语句。 当您编写自己的日志类时,要在整个应用中使用它,您只需替换所有

boolean debug = true

import android.util.Log; 

使用Eclipse。

答案 2 :(得分:1)

日志记录是开发人员使用的非常方便的调试和诊断技术。使用作为Android SDK一部分提供的日志记录类将有关应用程序的重要信息记录到LogCat,但请确保在发布之前检查应用程序的日志记录实现,因为日志记录存在性能缺陷。

在发布您的应用程序之前请仔细查看您的日志,以免泄露任何机密数据。

只要您的应用程序处于测试模式,日志就非常重要。日志将为您提供当前设备上应用程序的当前状态和方案。因此,只要您更新应用程序,它就会非常有用。

如果发现您的日志记录机制违反规则,Google Play有时会拒绝您的应用。

答案 3 :(得分:0)

将Log方法保留在Production上是不安全的。这些日志可用于跟踪Android中的不同回调,如果您在其中显示数据库记录,则必须在发布应用程序之前删除这些记录。

您不必在项目中逐个删除日志回调。只需在项目根目录中的proguard-project.txt中写几行,就可以使用Proguard自动删除Log方法。

Follow this answer to remove logging methods using proguard