Android網頁廣告植入規避方案
一、前言(問題提出)
網頁經過dns,運營商或者被截取的時候,就可能被非法注入廣告,甚至是詐騙鏈接。在移動端尤其嚴重,特別是webView。
二、實現方案(實現、改進方案、解決思路)
問題現象
小米商城被植入廣告圖
問題分析
- dns植入,經過dns時,有可能被注入
- 移動運營商植入,使用數據網絡的時候有可能被注入
- 被重定向,嵌套iframe,著名的百度推廣
- 其他被截取和植入的情況
Android網頁容易出現廣告植入的現象,給用戶造成不好的體驗,可能盜竊用戶的信息,造成用戶流失。
解決方案:
1、將所有的網絡請求和請求地址修改爲https
如果請求地址是webView,需要在WebViewClient中,重寫改方案,否則,https網頁將無法加載
@Override
public void onReceivedSslError(WebViewview,SslErrorHandlerhandler,SslError error) {
handler.proceed();
}
WebViewClient配置代碼
2、攔截所有非法的網絡加載
在WebViewClient中,攔截所有的網絡請求,包括圖片,js等文件。一旦發現文件不是拉起我司的域名,尤其的常見廣告域名,立即攔截處理。
WebViewClient配置代碼
public WebResourceResponse shouldInterceptRequest(WebView webView, String url) {
url = url.toLowerCase();
if (!url.startsWith(NetConfig.URL_HOST)) {
return new WebResourceResponse(null, null, null);
}
return super.shouldInterceptRequest(webView, url);
}
3、如果屬於運營商的問題,可以撥打相應的電話投訴。
處理後:
不再出現廣告。
三、總結及備註
Android網頁廣告植入過程簡單而且氾濫,竊取了用戶的流量,加入非法鏈接,很可能給用戶造成損失,導致用戶流失。需要從技術上規避這裏現象。採用https請求和攔截非法網絡請求,可以有效的規避廣告植入。