微信小程序接口安全如何保证

2019-11-28 09:09:55 +08:00
 daijinming

不知道大家对微信小程序的后台接口安全保证如何认识,小程序都要求 https,这样就可以保证安全了吗?

4315 次点击
所在节点    微信
6 条回复
b821025551b
2019-11-28 09:20:38 +08:00
必须 https,token 鉴权,如果有问题的话,除了银行那种双向证书认证的 APP 都有问题吧。
daijinming
2019-11-28 09:27:06 +08:00
@b821025551b token 鉴权 能不能详细给介绍下,微信用户又不用登陆,一般我只能获得微信 openid,
tanranran
2019-11-28 09:27:11 +08:00
这世界没有绝对的安全
b821025551b
2019-11-28 09:31:26 +08:00
@daijinming #2 你拿到 openid 不就是登录了么。。。,这时候就要自己搞个 token 给前端来维护登录状态,不然你怎么处理,一个 openId 就可以干所有事了?
ajaxfunction
2019-11-28 10:38:52 +08:00
和 app 没什么两样啊,还是以 token 为主
第一次登陆下发 toekn,以后每次请求必须带 token,否则视为未登录用户,先让他去登录。
小程序就是多了个 openid,免去用户输入账号密码而已
Lonersun
2019-11-28 11:58:41 +08:00
1、前端调用接口(参数:appid,secret ),给后端,后端调微信换取 openid,然后判断 openId 是否已经绑定账户,没有直接将 openId 返回给前端,走注册流程,存在用户则生成 Token 与用户绑定,设置 Token 有效期,并将 Token 返回给前端;
2、前端在请求其他接口时必须带上 Token,加上当前时间戳,再根据 token 和其他信息按照一定规则生成一个签名 [比如 md5(token+timestamp+xx_key)] , 这些信息可以放 header 里
3、后端接到请求先判断 token 是否存在、有效,判断签名是否正确,判断时间戳是否超过服务器时间太久(比如 5 分钟),根据 token 找到用户并判断用户状态,如果校验通过才可以访问调用的接口

增加签名是为了增加模拟请求的难度,就算知道了 token,不知道签名规则,还是请求不成功;
增加时间戳字段的目的,一是为了验签,二是为了防止一个签名无期限的使用;

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/623818

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX