为什么printStackTrace()会对移动(Android)应用程序造成安全风险?

时间:2015-04-09 18:44:45

标签: android security

我在互联网上找到了几个地方,他们提到使用方法

Throwable.printStackTrace() 
你的Android应用程序中的

会带来安全风险(这也是糟糕的编码习惯。)我想了解为什么会出现安全风险?攻击者可以使用

提供的信息做些什么
e.printStackTrace();

其中e的类型为Exception,例如?

2 个答案:

答案 0 :(得分:0)

嗯,作为开发人员,您永远不会希望最终用户了解应用程序后面发生的事情。我现在可以想到以下几点。

  
      
  • 堆栈跟踪永远不应对最终用户可见

  •   
  • 生成堆栈跟踪是一个相对繁琐的过程

  •   
  • 许多日志框架可用于

  •   
  • 打印堆栈跟踪不构成错误处理。它应该与其他信息记录和异常结合使用   处理

  •   

我使用相同的链接来回答你的问题,因为两者都是相关的!

答案 1 :(得分:0)

攻击者已经可以下载您的APK:
见:https://github.com/Lekensteyn/apk-downloader

并反编译以获取源代码:
见:Is there a way to get the source code from an APK file?

因此,如果安全功能依赖于攻击者不知道您的代码如何工作,那么您的安全性就会很差。

"系统安全性不应取决于实施或其组件的保密性。" - https://en.wikipedia.org/wiki/Security_through_obscurity

隐藏堆栈跟踪不是一种有效的安全措施。