美文网首页Android开发
Android 应用安全 - WebView请求过滤

Android 应用安全 - WebView请求过滤

作者: 盛世光阴 | 来源:发表于2021-04-10 09:54 被阅读0次

前言

为了提高应用的安全性,有时候我们需要过滤WebView的请求,从而达到并不是信任所有的请求,可以防止在App中打开非正常链接或者屏蔽广告

1.过滤名单

如果你的App有比较严格的安全需求,则只需要信任自己定义的信任列表,把列表之外的路径都不让其加载,如果你的App中会加载大量的外部网页默认信任大部分网页则只需要添加黑名单,依需求而定

    val hostPattern = arrayListOf(
        "^.+\\.baidu\\.com",
        "^.+\\.youcompany\\.com"
    )

需要注意一点,为了增强匹配的安全性我们可以使用正则去进行匹配,正则中"."表示任何所以我们需要加上转义字符

    fun checkIsTrustUrl(path:String?,pattern: List<String>):Boolean{
        try{
            val url = URL(path)
            pattern.forEach {
                if(Pattern.compile(it).matcher(url.host).find()){
                    return true
                }
            }
        }catch (e: MalformedURLException){
            if(BuildConfig.DEBUG){
                Log.d("SecurityHelper","$path ${e.message}")
            }
        }
        return false
    }

1.在WebView设置中拦截Web请求

shouldInterceptRequest函数会拦截所有经过的web资源资源请求,当没有通过我们的名单校验时,则返回一个不返回任何资源的WebResourceResponse对象,意味着不加载此资源,这里要注意就是shouldInterceptRequest函数的返回值不要直接返回null,那意味着交给了webView自己处理起不到拦截的作用

 object : WebViewClient(){
            override fun shouldInterceptRequest(
                view: WebView?,
                url:String
            ): WebResourceResponse? {
                if(!SecurityHelper.checkIsTrustUrl(url,SecurityHelper.hostPattern)){
                    return WebResourceResponse(null,null,null)
                }
                return super.shouldInterceptRequest(view, url)
            }
        }

欢迎关注Mike的简书

Android 知识整理

相关文章

  • Android 应用安全 - WebView请求过滤

    前言 为了提高应用的安全性,有时候我们需要过滤WebView的请求,从而达到并不是信任所有的请求,可以防止在App...

  • Android 安全问题

    Android安全问题主要有:终端漏洞、应用重打包、应用仿冒 终端漏洞 组件安全:四大组件 + WebView A...

  • Android WebView原生与网页交互常用知识点

    1、android WebView拦截请求详解2、android webview一篇文章全面了解(基本使用,url...

  • Android网络请求

    android网络请求 标签(空格分隔): android webview的用法MainActivity 需要添加...

  • 移动端Web开发调试之Chrome远程调试

    android远程实时更新webview界面: 步骤一:android应用内webview设置属性 步骤二:谷歌浏...

  • 过滤器

    过滤器 Filter 用于对用户请求进行预处理,和对请求响应进行后处理的 web 应用组件。 过滤源:请求与响应过...

  • Android WebView安全

    你的应用使用Hybrid App开发,或者是里面总要有一个webview的连接,优点就不用说了。来说说缺点吧。An...

  • OncePerRequestFilter与Filter的区别

    一、概述 我们都知道Filter是属于Servlet,用于请求过滤的,通常用于过滤请求的URL,不需要进行安全验证...

  • Android应用安全

    Android应用安全 Android应用安全攻击面看安全 https://blog.csdn.net/u0106...

  • Android WebView应用

    简介 WebView是一个基于webkit、展现web页面的控件。 作用 显示和渲染Web页面直接使用html文件...

网友评论

    本文标题:Android 应用安全 - WebView请求过滤

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