成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WebView:Google,我已經長大了,知道自己區分安全!!

安全 應用安全
如果你在用 Android 原生系統(Google Play 服務),在使用 WebView 加載某些網頁時,一定遇到過以下的安全警告紅屏。

[[258891]]

 一、前言

如果你在用 Android 原生系統(Google Play 服務),在使用 WebView 加載某些網頁時,一定遇到過以下的安全警告紅屏。

 

這是 WebView 的安全瀏覽保護策略,在 Android 8.0(API Level 26)開始的默認策略,被應用在所有 App 的 WebView 當中。

Google 會自己維護一套“不安全”網站的列表,并通過 Google Play 服務,同步到所有的設備上。當你要訪問某些被標記為“不安全”的網站時,它就會以此“紅屏”警告用戶。

注意這是默認策略,雖然出發點是為了保護用戶,但是有時候我們自己的 App 還是要有自主管控的權利。

那我們有辦法在自己的 App 內,關閉此項保護嗎?畢竟我的應用我做主,安不安全自己來管控。

今天就來聊聊,如何在 Android 8.0(API Level 26)中,關閉此安全保護策略。

二、什么是WebView的安全策略

自 2018 年 4 月起,隨著 WebView 66 發布,Google Play 保護機制,將在 WebView 中默認開始此安全瀏覽策略。

而 Android 開發者在使用 WebView 時,無需再進行任何更改,即可享受此項保護服務。自 Android 8.0 開始,WebView 中即已經集成安全瀏覽功能,并且與 Android 版的 Chrome 采用相同的底層技術。

一旦觸發 WebView 的安全機制,就會出現類似下圖這樣的“紅屏”警告。

 

Google 會自維護一套不良網站的列表,以確保用戶可以在瀏覽之前,發出警告。為了同步這部分列表,Google 花費了很大的努力,就是為了保護用戶的安全。

三、如何控制安全策略

在 Android 8.0 及以上的設備中,WebView 的安全瀏覽策略,是默認生效的。

也就是說,如果我們想要使用它,我們什么額外的工作都不需要做,但是我們如果不想采用它,就需要通過一個方法將其關閉。

3.1 如何監控開啟

WebView 的安全瀏覽,是依賴于 Google Play 和 Chrome 更新的,也就是說,雖然你的設備是 Android 8.0,但是此策略也是有可能沒有生效的。

那么如何確定此功能是否生效呢?

WebView 提供了一個方法 startSafeBrowsing() 方法,來主動開啟安全瀏覽策略,在回調中,我們可以知道當前設備是否準備好了,符合開啟安全瀏覽的條件。

WebView.startSafeBrowsing(this, object : ValueCallback { override fun onReceiveValue(value: Boolean?) { val isOpen = value ?:false if (isOpen) { Log.i("cxmy_dev", "Safe browsing. On") } else { Log.i("cxmy_dev", "Safe browsing. Off") } }})

注意回調內的 value 可能為 null。

3.2 如何關閉安全策略

WebView 的安全策略是默認開始的,如果想要關閉它,需要通過 WebSettings 這個類,其中有 setSafeBrowsingEnabled(boolean) 方法,可以用于設置是否開啟安全模式。

webSettings.safeBrowsingEnabled = false

此方法是一種全局的策略,也就是要么開啟、要么關閉。

3.3 配置白名單

使用 setSafeBrowsingEnable() 方法,只能做二態的設置,要么開啟要么關閉。如果我們想設置,只允許某些 Host 不經過安全策略校驗,如何設置呢?

WebView 還提供了一個 setSafeBrowsingWhiteList() 的方法,用于設置一個安全策略的白名單。

var array = ArrayList()array.add("example.com")WebView.setSafeBrowsingWhitelist(array, object : ValueCallback { override fun onReceiveValue(value: Boolean?) { }})

setSafeBrowsingWhiteList() 方法很靈活,可以通過配置指定域名及其子域名,或者僅此域名不包含其子域名。還可以直接配置 IP 地址,支持 IPV4 和 IPV6。

 

四、小結時刻

今天我們聊到如何關閉 WebView 的安全瀏覽策略,本文涉及的 API,全部僅支持 API Level 27,使用的時候注意判斷。

當然,WebView 的安全瀏覽是有必要的,所以如果你的域名被 Google 誤認為是危險鏈接,可以通過申述的方式解封。申述地址(https://support.google.com/chrome/answer/99020)。

references:https://security.googleblog.com/2015/12/protecting-hundreds-of-millions-more.html

https://developer.android.com/reference/android/webkit/WebView.html

https://www.google.com/chrome/privacy/whitepaper.html

【本文為51CTO專欄作者“張旸”的原創稿件,轉載請通過微信公眾號聯系作者獲取授權】

 

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2012-05-08 16:07:38

Android

2010-03-25 16:08:19

2012-07-25 09:56:52

編程程序員

2016-09-07 12:44:43

2009-09-03 17:54:01

Google Wave

2020-05-25 08:45:08

面試Google簡歷

2021-05-10 07:30:33

Google技術谷歌

2013-01-24 11:15:58

IE10瀏覽器

2022-02-21 12:29:01

for循環前端

2011-08-31 08:41:07

Java高斯林

2015-08-11 09:51:06

谷歌重組Alphabet

2023-01-02 10:08:42

StampedLocAQS框架

2021-04-12 15:26:35

PythonPycharm快捷鍵

2018-05-03 06:56:43

項目經理代碼項目管理

2021-12-31 18:24:45

ThreadLocal數據庫對象

2015-11-16 09:04:19

寫代碼程序員年齡

2015-11-17 09:47:32

代碼寫下去

2023-06-06 07:41:00

Reacthook

2018-05-10 08:55:51

2019-06-19 09:33:17

微服務面試電商
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区二区免费 | 中文字幕高清 | 在线观看免费毛片 | 国产欧美一区二区精品久导航 | 久久精品二区亚洲w码 | 一区二区三区不卡视频 | 精品九九| 黄色一级片aaa | 欧美国产一区二区三区 | 国产成人网| 狠狠婷婷综合久久久久久妖精 | 丝袜一区二区三区 | 久久精品99久久 | 在线黄| 91免费在线 | 欧美一级免费看 | 国产精品成人国产乱 | 成人在线网址 | 成人精品国产 | 毛片网站在线观看 | 日韩三级视频 | 亚洲看片网站 | 91极品尤物在线播放国产 | 久久久久久久久久性 | 小h片免费观看久久久久 | 国产一区二区三区免费 | 久久国产精品72免费观看 | 日韩伦理一区二区三区 | 久久在线| 国产免费一区二区 | 日韩欧美一区二区三区免费看 | 91美女在线 | 亚洲 欧美 日韩 在线 | 99久久久无码国产精品 | 欧美激情五月 | 亚洲精品美女视频 | 先锋av资源网 | 91视频导航| 国产一区二区三区久久久久久久久 | 国产精品成人在线播放 | 蜜臀久久99精品久久久久久宅男 |