网页端启动Splashtop Business本地应用的实现机制及验证方法问询
Splashtop网页唤起本地客户端的实现逻辑推测与验证方法
最可能的实现方案:本地环回后台服务
这是目前桌面端软件实现网页唤起的主流方案,完全匹配你提到的所有特征:
- 安装Splashtop客户端时,会同时注册一个轻量后台守护进程,开机自启后仅监听127.0.0.1的某一个固定私有端口,不会暴露到公网
- 你在网页端点击Connect后,服务端首先生成当前会话的一次性加密连接参数(含目标工作站ID、账号授权信息),同时写入关联Cookie,接着网页会轮询探测本地环回端口是否可访问,你看到的「Locating the Splashtop Business app」就是探测过程的提示
- 探测到本地服务正常运行后,网页会弹出临时窗口(所以需要你开启弹窗权限),向本地服务的HTTP接口发送请求,同时把关联的Cookie、连接参数一并传给本地服务
- 本地服务校验参数合法后,就会唤起Splashtop Business主程序,传入连接参数直接发起远程会话
你之前抓包没看到相关请求,是因为127.0.0.1的本地请求不会经过物理网卡,常规抓外网网卡流量的操作自然捕获不到,只能在浏览器开发者工具里看到。
次可能的实现方案:未公开的自定义URI协议
部分厂商不会把自定义URI的规则写入公开文档,避免被恶意利用,逻辑也很简单:
- 安装客户端时向系统注册
splashtop://开头的自定义协议 - 网页拿到连接参数后,构造带参数的自定义URI,通过弹窗/隐藏iframe触发协议唤起,系统识别到协议后自动启动本地客户端并传入参数
可落地的验证方法
验证本地环回服务
- 打开任务管理器(Windows)/活动监视器(Mac),找到Splashtop运行中的后台进程,记录进程ID
- 执行端口查询命令:
- Windows平台:打开cmd执行
netstat -ano | findstr 【你记录的进程ID】 - Mac/Linux平台:执行
lsof -p 【你记录的进程ID】 | grep LISTEN
如果查询结果显示该进程监听了127.0.0.1的TCP端口,即可确认是该方案
- Windows平台:打开cmd执行
- 打开浏览器开发者工具,切换到「网络」标签,勾选「保留日志」,过滤地址为
127.0.0.1/localhost的请求,点击Connect后就能看到所有传给本地服务的参数和Cookie内容。
验证自定义URI协议
- 打开浏览器开发者工具的「网络」和「控制台」标签,均勾选「保留日志」
- 点击Connect按钮后,在网络请求中找状态为
aborted或类型为other的请求,查看请求地址是否为splashtop://开头的格式 - Windows平台可直接查看注册表:打开注册表编辑器定位到
HKEY_CLASSES_ROOT,查找是否存在splashtop命名的项,存在即可确认注册了自定义协议。
内容的提问来源于stack exchange,提问作者robinspi
相关产品推荐
相关产品推荐

