• Android 漏洞修复


    1.WebView绕过证书校验漏洞

    webviewClient中有onReceivedError方法,当出现证书校验错误时,我们可以在该方法中使用handler.proceed()来忽略证书校验继续加载网页,或者使用默认的handler.cancel()来终端加载。
    因为我们使用了handler.proceed(),由此产生了该“绕过证书校验漏洞”。
    如果确定所有页面都能满足证书校验,则不必要使用handler.proceed()
     

    1. @SuppressLint("NewApi")
    2. @Override
    3. public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
    4. //handler.proceed();// 接受证书
    5. super.onReceivedSslError(view, handler, error);
    6. }

    2.应用数据备份风险

    AndroidManifest.xml中的allowBackup属性如果为true,则App可被非法备份,从而导致用户敏感信息泄露,allowBackup = true,允许用户备份或者恢复数据。在金融类或者通讯类app中可能会导致重要信息被窃取。

    安全规范建议

    将AndroidManifest.xml中的allowBackup属性设置为false

    3.WebView明文漏洞风险

    【漏洞描述】

    Android的Webview组件中默认打开了提示用户是否保存密码的功能,如果用户选择保存,用户名和密码将被明文存储到该应用目录databases/webview.db中。而本地明文存储的用户名和密码,不仅会被该应用随意浏览,其他恶意程序也可能通过提权或者root的方式访问该应用的webview数据库,从而窃取用户登录过的用户名信息以及密码。

    【修复建议】

    通过设置WebView.getSettings().setSavePassword(false)关闭webview组件的保存密码功能。

    4.Webview远程代码执行漏洞

    【漏洞描述】

    Webview是Android用于浏览网页的组件,其包含的接口函数addJavascriptInterface可以将Java类或方法导出以供JavaScript调用,实现网页JS与本地JAVA的交互。由于系统没有限制已注册JAVA类的方法调用,因此未注册的其它任何JAVA类也可以被反射机制调用,这样可能导致被篡改的URL中存在的恶意代码被执行,用户手机被安装木马程序,发送扣费短信,通信录或者短信被窃取,甚至手机被远程控制。

    【修复建议】

    取消使用addJavascriptInterface接口,以其他Java与JavaScript互通方案代替;若必须使用,则应对访问的url进行过滤限制或对html页面进行完整性校验,同时显示移除对指定的javascript接口的调用:removeJavascriptInterface(searchBoxJavaBridge_)emoveJavascriptInterface(accessibility);removeJavascriptInterface(accessibilityTraversal)。

  • 相关阅读:
    算法分析与设计考前冲刺 (算法基础、数据结构与STL、递归和分治、 动态规划、贪心算法、 回溯算法)
    《微服务架构设计模式》第二章
    Element+Vue+OpenLayers的项目实战
    基于 CentOS7 制作 Apache HTTPD 2.4.58 的RPM安装包
    一个c程序的内存分布
    ros2工作空间
    ElasticSearch 实现 全文检索 支持(PDF、TXT、Word、HTML等文件)通过 ingest-attachment 插件实现 文档的检索
    KT6368A双模蓝牙芯片客户生产BMS主板距离短通讯不稳定的问题整改记录
    教你如何判断Java代码中异步操作是否完成
    ajax快速入门
  • 原文地址:https://blog.csdn.net/qq_34895720/article/details/126094275