zoukankan      html  css  js  c++  java
  • 每日日报2021.3.12

    今天完成内容:

    1.学习android webview

    3.3 WebView与JavaScript的交互

    3.3.1 JS注入漏洞

    addJavascriptInterface 接口引起远程代码执行漏洞

    webView.addJavascriptInterface(new JSObject(), “myObj”);

    参数1:Android的本地对象

    参数2:JS的对象

    通过对象映射将Android中的本地对象和JS中的对象进行关联,从而实现JS调用Android的对象和方法

    产生原因: JS拿到Android这个对象后,可以调用这个Android对象中的所有方法,包括(java.lang.Runtime类),从而进行任意代码执行.

    eg: 执行对应命令获取本地设备SD卡中的文件信息造成信息泄漏

    解决方案:

    第一种: 4.2 版本之后, 在被调用的函数上加上@JavascriptInterface 注解,避免漏洞攻击

    第二种: 4.2版本之前. 采用拦截prompt()进行漏洞修复.

    步骤:

    (1) 先继承自WebView,重写addJavascriptInterface方法,在内部维护一个对象映射关系的Map, 将要添加的JS接口放入该Map

    (2) 在Webview加载前时,加载一段本地JS代码

    a.让JS调用 提供的javascript方法, 通过调用prompt()把JS中的信息传给Android端

    b.在Android端的onJsPrompt()中,解析传递过来的信息,再通过反射机制调用Java对象中的方法.有个中间层来保证安全调用.

    3.3.2 JSBridge

    定义: 就是给JavaScript 提供调用Native功能的接口

    核心: 构建Native 和非Native间消息通信的通道,双向通信的通道.

    双向通信:

    JS向Native发送消息,调用相关功能,通知Native当前JS的相关状态

    Native向JS发送消息,回溯调用结果,消息推送,通知JS当前Native的状态

    3.看视频

    遇到问题:

    明日目标:

    学习Android studio的开发

  • 相关阅读:
    Django 支付宝付款接口的使用
    Django 处理跨域的配置、前台处理ajax
    pip安装源
    Django 缓存机制
    Django 配置使用日志
    Celery框架的基本使用方法
    python 虚拟环境的搭建
    Django 后台管理xadmin
    Python学习之路_day_16(模块搜索路径,开发规范)
    Python学习之路_day_15(模块)
  • 原文地址:https://www.cnblogs.com/leiyu1905/p/14906671.html
Copyright © 2011-2022 走看看