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