关于手机app之api认证

转载于未知名博客

 

出于安全kao虑,近期推进一次app和api间通讯的认证的流程。舍弃了app认证这种思路,走的用户授权的思路。

具体流程如下:

  1. 就是app第一次启动时,向服务器请求获得accessId 授权id,accessToken 授权token,accessExp 授权过期时间。 

  2. 接口请求的时候,将参数,时间戳,accessToken哈希,作为sign附加在参数上。(如果上https,只要将accessToken附加返回就好了) 

  3. 当用户登录的时候,将用户id和accessId关联,存于服务器端。 

  4. 操作用户数据接口获取到用户id后校验和accessId关联的用户id比较是否一致。 

  5. 以后手机启动的时候,拿保存的access信息,请求更新接口,获取新的access信息。 

 

kao虑的安全问题:

  1. 数据私密性,让数据在传输过程中不可见,避免偷窥狂,解决办法是上https,第一期不做。 

  2. 数据完整性,防止数据发出后被篡改,解决办法是上https,第一期特么不上https,第二期又不知道在哪里。所以,将所有参数,加上时间戳,和access_token拼接后进行hash得到sign,附加在请求里面。服务端对sign进行校验。保证参数不被篡改。 

  3. 请求幂等性,一个请求只请求一次有效,例如A给B转账,这个请求调用多次,只会转账一笔。通过accessId,接口,时间戳作为唯一判断来避免重放。 

  4. 密钥泄漏,app被反编译,密钥丢了怎么办,所以舍弃app授权,改用对用户授权。 

  5. 内存修改器,app如果直接持有memberId与服务端通讯,假如memberId被修改,防线瞬间就瓦解了,所以不以app持有的memberId为凭证,而是以accessId关联的memberId为准。


转载于:https://my.oschina.net/u/216465/blog/657066

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值