美文网首页
2.5基础知识-webView安全漏洞

2.5基础知识-webView安全漏洞

作者: 205蚁 | 来源:发表于2018-11-09 07:45 被阅读0次

webview安全漏洞详解

  • 1.Webview常见的一些坑

      1. Android API level 16 以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用WebView.addJavascriptInterface方法,远程攻击者可通过使用Java Reflection API利用该漏洞执行任意Java对象的方法
      1. webview在布局文件中的使用,webview写在其他容器中时,当离开界面时,需要销毁webView,在onDestroy时,一定要先将webview从容器中remove,然后再调用webview的removeAllViews,和webView的ondestroy方法才不会导致内存泄露问题
      1. jsbridge
        通过js构建桥,为了让native调用远端js的代码,也可以让js代码调用native代码
      1. webViewClient.onPageFinished-->WebChromeClient.onProgessChanged
        onPageFinished:加载完成时会回调这个方法。检测当前网页是否加载完毕。如果当前网页产生跳转,这个方法会执行无数次,当webview需要加载各种网页,并且在网页上有一些操作时,最好还是调用WebChromeClient.onProgessChanged()方法,这方法靠谱些
      1. 后台耗电:性能优化,当程序开webView加载网页时,webview会自己开启线程,如果没有很好的将webview销毁的话,这个残留的线程就会一直在后台运行,而导致应用程序居高不下。
        粗暴处理:在onDetroy时直接调用system.exit直接把虚拟机关闭
      1. WebView硬件加速导致页面渲染问题
        容易出现页面加载白块,页面闪烁的现象
        处理:设置WebView暂时关闭硬件加速
  • 2.关于webView的内存泄露问题

    • WebView加载会创建自己的线程,这个线程跟Activity的生命周期是未绑定,无法控制。 跟匿名内部类引用,导致外部内无法回收相似。
    1. 独立进程,简单暴力,不过可能涉及到进程间通信(用的多,防止内存泄露,减轻主进程的内存压力)

    2. 动态添加WebView,对传入WebView中使用的Context使用弱引用,动态添加WebView的意思是布局创建一个ViewGroup用来放置WebView,Activity创建时add进来,在Activity停止时remove掉

相关文章

网友评论

      本文标题:2.5基础知识-webView安全漏洞

      本文链接:https://www.haomeiwen.com/subject/evhnxqtx.html