zoukankan      html  css  js  c++  java
  • Webview跨域访问风险

    漏洞原理:
    WebView对象的行为是通过WebSettings类进行设置的,如果配置不当,攻击者就可以利用该漏洞可以打破Android沙盒隔离机制,从而通过某个应用来攻击其它应用,盗取其它应用本地保存的配置文件、敏感信息等。

    主要利用了android.webkit.WebSettings类中setAllowFileAccess()、setJavaScriptEnabled()、setAllowFileAccessFromFileURLs()、setAllowUniversalAccessFromFileURLs()四个方法配置不当(允许webview使用file协议并允许使用javaScript)的风险,并配合Activity组件暴露漏洞进行攻击。

    <strong>setAllowFileAccess()</strong>
    // 启用或禁用Webview中的文件访问,默认是true
    webView.getSettings().setAllowFileAccess(true);
     
    <strong>setJavaScriptEnabled()</strong>
    // 设置webview是否启用javascript执行,默认是false,设置为true就是启用javascript执行。
    webview.getWebSettings().setJavaScriptEnabled(true);
     
    <strong>setAllowFileAccessFromFileURLs()</strong>
    // 设置是否允许通过 file url 加载的文件中Js代码读取其他的本地文件。
    // 需要注意的是如果getAllowUniversalAccessFromFileURLs()的值为true,则此设置的值将被忽略。要启用最严格的安全策略,应该禁用此设置:
    webView.getSettings().setAllowFileAccessFromFileURLs(false);
    // Api级别15及以下,默认是true
    // Api级别JELLY_BEAN(API级别16,android4.1版本代号,中文翻译果冻豆)及以上默认是false
     
    <strong>setAllowUniversalAccessFromFileURLs()</strong>
    // 设置是否允许通过 file url 加载的 Javascript 可以访问其他的源(包括http、https等源)
    webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
    // Api级别15及以下,默认是true
    // Api级别JELLY_BEAN(API级别16,android4.1版本代号,中文翻译果冻豆)及以上默认是false
    View Code
  • 相关阅读:
    System.Threading.Timer 无规律执行次数的问题
    C#通过URL获取顶级域名的方法
    C#变量声明添加?与@的用法
    基于system.diagnostics Trace的日志输出
    SSB(SQLservice Service Broker) 入门实例
    .NET 入门测试题二:流程控制
    .NET 入门测试题三:变量的更多内容
    .NET 入门测试题四:函数
    .NET 入门测试题一:变量与表达式
    WinCE切换GPRS
  • 原文地址:https://www.cnblogs.com/sprinng/p/8284006.html
Copyright © 2011-2022 走看看