在我的Android应用程序中,我广泛使用Log.i
,Log.e
。
在这些命令中,我通常传递与我的应用程序通信的SQLite查询或http rest URL。
我的问题是:当应用程序到达Play商店时保留这些日志是否安全?如果用户在他的计算机上连接了设备的情况下运行应用程序,他是否可以在他的LogCat上查看日志消息?
答案 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方法。