WebView安全

前言

Hybrid App(混合式)已成商业应用开发手段。H5开发动更页,借移动端原生系统WebView加载。

优劣

混合式开发不仅节约安卓/IOS客户端开发成本,还可在避应用版本迭代情况下动态更新页面内容。然WebView存弊端,即始终无法避免安全问题。如所连WI-FI可能被一些网络运营商恶意拦截DNS系统,打开应用WebView时,于页面底部或其它地方现莫名其妙广告。更甚者直接重定向到其它网页,对应用或设备随意操作,存极大安全隐患。

方案

Google一直致力于处理此问题。据Android Developers官方博客介绍,Android O开始,WebView将用独立于托管应用外进程进行渲染,提供隔离空间。
WebView安全_第1张图片
该做法与Chrome浏览器类似,使WebView有两级隔离:

  • WebView渲染引擎剥离出独立进程,便不存由WebView加载错误导致主应用崩溃且第三方恶意网站很难通渲染器攻击托管应用。
  • 隔离进程沙盒中运行的渲染器进程被限制使用设备资源,如渲染器不能自行向磁盘写入数据或进行网络通信等。该隔离能进一步防御恶意攻击。

安全浏览模式下最新版WebView集成Google安全浏览机制保护、提醒用户可能存风险网站。启用安全浏览配置后,WebView将参考安全浏览的恶意软件和钓鱼网站数据库检查所访URLS地址,用户打开前给予危险提示,如:
WebView安全_第2张图片

做法

App清单文件下配即可让所用全部WebView支持安全浏览:

<manifest>
    <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
    android:value="true" />
    ...
    <application> ... </application>
</manifest>

上配系统提meta-data标签不可于manifest标签内,如下移至application标签内即可:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.self.zsp.imtp">
       
    <application>      
        <meta-data
            android:name="android.webkit.WebView.EnableSafeBrowsing"
            android:value="true" />               
    </application>
</manifest>

你可能感兴趣的:(hybrid)