为什么可以通过URL来调起APP - URL Scheme和Intent

本文介绍了如何使用URLScheme实现浏览器中通过特定URL调用APP的功能。重点解释了URLScheme的工作原理,包括其结构及在AndroidManifest.xml中的配置方法。同时,还探讨了Intent在这一过程中的作用。

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

在手机浏览器中可以通过URL调起APP是不是很神奇?这篇文章就告诉你为什么。

URL Scheme


先从前端能接触到的URL Scheme分析一下

丢wiki:https://en.wikipedia.org/wiki/Uniform_Resource_Identifier

URL Scheme就是一种协议url,同我们常见的http,ftp的本质一样,资源定位符!

而在Android中自定义的URL Scheme是一种页面内跳转协议。

Android的URL Scheme的结构:

743207-20170911175404000-594142492.png (来自wiki)

表示方式一:

scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]

表示方式二:

<scheme>://<host>:<port>/<path>?<query>

具体例子(伪):

xl://goods:8888/goodsDetail?goodsId=10011002

大体图示:

743207-20170911175259578-62673358.png

通过这种类似的URL,APP会收到浏览器通知,并且通过解析URL Scheme(解析这块操作是在安卓容器中处理的)的结构来展现对应的页面(Activity)

前提是在安卓应用中,开发者定义了URL Scheme(自定义),通过安装应用在系统中注册该Scheme信息。

在安卓应用中的AndroidManifest.xml中对标签增加设置Scheme

743207-20170911180525750-1261373580.png (来自网络)

在页面中我们就可以通过这样来调用,调起APP并进入对应的详细页面:

window.location.href = 'xl://goods:8888/goodsDetail?goodsId=10011002';

Intent


再从客户端角度Intent分析一下

Intent是一种运行时绑定(run-time binding)机制,Intent可以通过多种方式协助组件之间的通信。

在前面URL Scheme的设置中,可以看到我们设置了<intent-filter>标签中的<data>部分。

具体Android方向的专业理解知识见:Android Activity和Intent机制学习笔记

参考


Uniform Resource Identifier
android Intent机制详解
Android 跨应用间调用: URL Scheme

要检测App中是否存在Intent Scheme URL攻击漏洞,可以按照以下步骤进行操作: 1. 首先,你需要了解Intent Scheme URL攻击漏洞的基本原理。Intent Scheme URL攻击漏洞是指攻击者构造一个特定的URL,当用户点击该URL时,App会自动执行一些操作,例如打开一个恶意网页、发送短信、打电话等。攻击者可以利用这个漏洞进行各种攻击,例如钓鱼、恶意广告、远程控制等。 2. 然后,你需要对App进行分析,查找是否存在漏洞。你可以使用一些静态分析工具,例如AndroBugs、QARK、MobSF等,来扫描App的代码,查找是否存在Intent Scheme URL攻击漏洞。这些工具可以检测App的代码中是否存在恶意的Intent Scheme URL,从而帮助开发人员修复漏洞。 3. 另外,你还可以使用动态分析工具,例如Frida、Xposed等,来检测App在运行时是否存在漏洞。例如,你可以使用Frida来注入一个Javascript脚本到App进程中,从而监控App的行为。如果App在运行时执行了恶意的Intent Scheme URL,那么就会触发脚本中的相应操作,从而提醒开发人员存在漏洞。 4. 最后,你需要对App进行修复,修复漏洞。如果你发现App存在Intent Scheme URL攻击漏洞,那么就需要对App进行修复。具体而言,可以采取以下措施来修复漏洞: - 验证Intent Scheme URL:在App中添加验证代码,对Intent Scheme URL进行验证,确保URL来源可信。 - 防范Intent Scheme URL攻击:在App中添加防范措施,例如禁用一些敏感操作、限制Intent Scheme URL的使用等。 总之,检测App中是否存在Intent Scheme URL攻击漏洞是非常重要的。开发人员应该采取一些防范措施,来保护App的安全。同时,定期进行安全评估测试也是必要的,以确保App中不存在安全漏洞。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值