JS和安卓的常见漏洞和解决方法

本文详细介绍了在Android中使用WebView时可能出现的安全问题及相应的解决方案,包括如何正确配置WebView来防止常见的漏洞,如远程代码执行和密码明文存储等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 JS调用的安卓方法必须放在一个Handler中执行

2、 webview可能造成漏洞,调用时分三种:

  •  addJavascriptInterface 进行js调用, 4.2以下有漏洞
  • 使用WebViewClient的shouldOverrideUrlLoading 进行url拦截,缺点是单向请求,有返回值的必须在通过js方法进行返回,适合于页面转换无返回值的情况
  • 重写WebViewClient 的 onJsAlert (弹框)、onJsConfirm(是否)onJsPrompt(得到返回值) 三个方法进行url判断

3、webview 常见漏洞: 

  •   CVE-2012-6636 (Android4.2 以下): WebView 中  addJavascriptInterface 接口会引起远程代码执行漏洞 ,解决办法:不使用addJavascriptInterface 
  •   CVE-2013-4710  (Android4.2以下):  针对某些特定机型会存在 addJavascriptInterface API 引起的远程代码执行漏洞,解决办法:不使用 addJavascriptInterface 
  •   CVE-2014-1939 (Android4.4 以下):  WebView 中的 “searchBoxJavaBridge_” Java Object 可能被利用,实现远程任意代码 ,解决方法 webView.removeJavascriptInterface("searchBoxJavaBridge_");
  •   CVE-2014-7224 (Android4.4 以下):  WebView 中的 “accessibility” 和 “accessibilityTraversal” 两个 Java Object 接口,可被利用实现远程任意代码执行 解决方法 参照 CVE-2014-1939
  •  WebView 密码明文存储漏洞 :  mWebView.setSavePassword(true),如果该功能未关闭,当弹出提示框询问用户是否保存密码选择是以后,密码就被明文存储到安装路径下,所以应该设置为false
  •  WebView 域控制不严格漏洞 : 
    setAllowFileAccess(true)   // 是否允许 WebView 使用 File 协议 , 在 File 域下,能够执行任意的 JavaScript 代码 
    setAllowFileAccessFromFileURLs // 是否允许通过 file url 加载的 Javascript 读取其他的本地文件,android 4.1以下默认允许, android 4.1以默认禁止
    setAllowUniversalAccessFromFileURLs // 设置是否允许通过 file url 加载的 Javascript 可以访问其他的源 android 4.1以下默认允许, android 4.1以默认禁止

    综上,使用以下配置让webview可以访问本地html文件,同时杜绝其中的js访问本地文件或者读取其他的源

    setAllowFileAccess(true);                               //设置为 false 将不能加载本地 html 文件
    setAllowFileAccessFromFileURLs(false);
    setAllowUniversalAccessFromFileURLs(false);
  • 使用符号链接跨源:当webview 不能访问本地文件和读取其他源以后,其中的js还是能访问当前文件,通过 javascript 的延时执行和将当前文件替换成指向其它文件的软链接就可以读取到被符号链接所指的文件,前提是允许 file URL 执行 javascript,解决办法

  •  1、对于不需要使用 file 协议的应用,禁用 file 协议;

      setAllowFileAccess(false); //设置为 false 将不能加载本地 html 文件

      setAllowFileAccessFromFileURLs(false);

      setAllowUniversalAccessFromFileURLs(false);

     2、根据不同情况不同处理(无法避免应用对于无法加载的页面下载到 sd 卡上这个漏洞):

      setAllowFileAccess(true); //设置为 false 将不能加载本地 html 文件

      setAllowFileAccessFromFileURLs(false);

      setAllowUniversalAccessFromFileURLs(false);

      if (url.startsWith("file://") { setJavaScriptEnabled(false); } else { setJavaScriptEnabled(true); }

参考:http://blog.youkuaiyun.com/self_study/article/details/55046348 

转载于:https://www.cnblogs.com/hack132/p/5021524.html

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 IT 领域,文档格式转换是常见需求,尤其在处理多种文件类型时。本文将聚焦于利用 Java 技术栈,尤其是 Apache POI iTextPDF 库,实现 doc、xls(涵盖 Excel 2003 及 Excel 2007+)以及 txt、图片等格式文件向 PDF 的转换,并实现在线浏览功能。 先从 Apache POI 说起,它是一个强大的 Java 库,专注于处理 Microsoft Office 格式文件,比如 doc xls。Apache POI 提供了 HSSF XSSF 两个 API,其中 HSSF 用于读写老版本的 BIFF8 格式(Excel 97-2003),XSSF 则针对新的 XML 格式(Excel 2007+)。这两个 API 均具备读取写入工作表、单元格、公式、样式等功能。读取 Excel 文件时,可通过创建 HSSFWorkbook 或 XSSFWorkbook 对象来打开相应格式的文件,进而遍历工作簿中的每个 Sheet,获取行列数据。写入 Excel 文件时,创建新的 Workbook 对象,添加 Sheet、Row Cell,即可构建新 Excel 文件。 再看 iTextPDF,它是一个用于生成修改 PDF 文档的 Java 库,拥有丰富的 API。创建 PDF 文档时,借助 Document 对象,可定义页面尺寸、边距等属性来定制 PDF 外观。添加内容方面,可使用 Paragraph、List、Table 等元素将文本、列表表格加入 PDF,图片可通过 Image 类加载插入。iTextPDF 支持多种字体样式,可设置文本颜色、大小、样式等。此外,iTextPDF 的 TextRenderer 类能将 HTML、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值