IOS 捷径开门

2018-12-30

使用捷径开门

前段时间,住的公寓打电话告诉我,让我去服务中心换个临时卡。因为门锁现在改造,到时候可以微信公众号开门。后面我发现门卡已经不能开门,打开公寓的微信公众号,有个菜单是“一件开门”。点击后绑定手机号码,然后有个打开一个微信内的网页,点击按钮就可以开门。刚开始觉得挺方便的,但是后面发现,每次回来都要在门口掏出手机,打开微信,找到公众号,点击开门菜单,打开了开门的页面,然后点击开门。这样无形中增加了很多繁琐步骤和时间。

我好奇点了微信内开门的按钮后执行了什么操作,便选择从浏览器打开这个页面。幸运的发现,打开的是一个独立的 Web 页面,没有像是那种一定要在微信内打开的页面。

打开浏览器开发者工具,发现点击开门后是往某个地址发起了 Post 请求,里面有我的对于这个公众号的 openid,还有我的房间号,和一个开门类型。类型是一个数字,很容易就猜到了这个 type 字段对应的是开房间和门禁。

随后我用 Postman 填写开门的接口地址,Post 请求发送我对应的数据,门就开了。既然开门只是调用了对应的接口,那我可以使用捷径来替我完成。

创建捷径

捷径步骤

1. 填写接口地址 URL

kRViN92LTBexlumNRirr+A_thumb_2a19

2. 发起 POST 请求

33F98842-DEB2-4467-8316-7FC137CAEA18

3. 获取 JSON 数据结果

aCkw2DyLRUeOrdv3jFFZ7Q_thumb_2a1a

4. 显示调用结果通知

UNADJUSTEDNONRAW_thumb_2a1b

快速打开捷径

添加小组件

下拉搜索

Siri 使用捷径

安全问题

远端接口未使用 HTTPS

我首先觉得这是个致命的问题,因为这样的数据传输相当于透明,容易被第三方截取,如果处在一个公共的 Wi-Fi 或者网络通信的某个节点和网关都能获取到内容。

参数固定,没有token之类的随机验证码

点击微信底部的菜单是打开一个网页,这一步是有通过微信来获取用户的信息和 openid 的。可以在这一步生成一个随机的token,token可以是一次性或者有一定的过期限制,开门后便失效,记录在这个房间。在微信回调打开网页的时候可以把这个token带给前端,点击开门按钮需要验证对应的token。