每日日报2021.3.12

每日日报2021.3.12,第1张

概述今天完成内容:1.学习androidwebview3.3WebView与JavaScript的交互3.3.1JS注入漏洞addJavascriptInterface接口引起远程代码执行漏洞webView.addJavascriptInterface(newJSObject(),“myObj”);参数1:Android的本地对象参数2:JS的对象通过对象映射将Android中的本地对象

今天完成内容:

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的开发

总结

以上是内存溢出为你收集整理的每日日报2021.3.12全部内容,希望文章能够帮你解决每日日报2021.3.12所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1120389.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存