Android中webview缓存密码带来的问题
2015-05-20 10:59
302 查看
乌云上发布了一个漏洞,称微信记录了用户微博账号的密码
这个问题的产生原因并不复杂:微信使用webview加载微博的OAuth登录和认证页面,并采用了webview的默认设置。这种情况下,用户输入账户和密码登陆微博时,系统会弹出提示询问是否保存密码。如果用户选择了是,密码就会保存在这个应用私有目录的databases/webview.db中。
同样地问题还出现在许多流行的应用软件中。在我的手机里,至少小米、腾讯、百度等公司的产品都有发现。
危险性如何?由于密码保存在了/data/data/com.package.name/databases/webview.db中,至少这个软件是可以随便读取的。但我审计过上面这些软件的代码,没有发现实际读取和回传这一密码的情况。另一方面,其他应用需要root权限才能读取——至少在Google的安全模型假设里,系统是不应该被root的。不少恶意代码会利用漏洞提权,因此有获得这些密码的可能,但目前还没有这样的案例。
责任在谁?Google曾回信称,这是webview的一个特性,开发者应在具体使用时自己考虑安全性。在这个案例中,腾讯也把责任推给了webview。我的观点是,Android、软件开发商、用户三方都有责任。Android的错误在于,给webview的默认设置是提示用户是否保存密码,而不是默认不保存,以及对天下无root的假设也毫不实际;软件开发商的错误在于,没有更改这个默认设置,将选择权留给了用户,并事实上造成了第三方密码被明文存储(虽然并非主观故意);用户的不当在于选择了保存——但这其实真的不能怪用户,不能要求大家理解这样一个会话界面的背后带来的诸多影响:
怎么修复?很简单,开发者在初始化webview实例后,加上一行代码:
就将其设置为不保存密码了。用户没有选择,也就避免了后面的问题
这个问题的产生原因并不复杂:微信使用webview加载微博的OAuth登录和认证页面,并采用了webview的默认设置。这种情况下,用户输入账户和密码登陆微博时,系统会弹出提示询问是否保存密码。如果用户选择了是,密码就会保存在这个应用私有目录的databases/webview.db中。
同样地问题还出现在许多流行的应用软件中。在我的手机里,至少小米、腾讯、百度等公司的产品都有发现。
危险性如何?由于密码保存在了/data/data/com.package.name/databases/webview.db中,至少这个软件是可以随便读取的。但我审计过上面这些软件的代码,没有发现实际读取和回传这一密码的情况。另一方面,其他应用需要root权限才能读取——至少在Google的安全模型假设里,系统是不应该被root的。不少恶意代码会利用漏洞提权,因此有获得这些密码的可能,但目前还没有这样的案例。
责任在谁?Google曾回信称,这是webview的一个特性,开发者应在具体使用时自己考虑安全性。在这个案例中,腾讯也把责任推给了webview。我的观点是,Android、软件开发商、用户三方都有责任。Android的错误在于,给webview的默认设置是提示用户是否保存密码,而不是默认不保存,以及对天下无root的假设也毫不实际;软件开发商的错误在于,没有更改这个默认设置,将选择权留给了用户,并事实上造成了第三方密码被明文存储(虽然并非主观故意);用户的不当在于选择了保存——但这其实真的不能怪用户,不能要求大家理解这样一个会话界面的背后带来的诸多影响:
怎么修复?很简单,开发者在初始化webview实例后,加上一行代码:
相关文章推荐
- 关于android 端,人人网以及新浪网 webview 页面缓存问题
- Android webview删除缓存问题
- android -- 小问题 Android WebView缓存分析
- Android基础入门教程——7.5.5 WebView缓存问题
- Android基础入门教程——WebView缓存问题
- Android问题—WebView缓存问题
- 关于Android之WebView加载网页缓存和清除问题
- Android在使用WebView时,图片显示出错问题。
- Android关于WebView中无法定位的问题解决
- 预览文章: android使用webview时按后退退出的问题
- Android WebView 播放视频无法播放问题和视频适应屏幕大小
- Android WebView重定向问题的解决方案
- WKWebView的缓存问题以及如何正确清理缓存
- Android webview加载html出现空白问题
- Android webView.loadData乱码问题
- Android WebView显示不全的问题。图片不显示的问题。
- Android N之后 Webview导致多语言切换失效的问题
- Android开发——WebView轻量缓存优化
- Android WebView截取所有内容生成长图在5.0以上系统异常问题
- android中webview定位问题示例详解