为了账号安全,请及时绑定邮箱和手机立即绑定

移动 APP 端与服务器端用户身份认证的安全方案

移动 APP 端与服务器端用户身份认证的安全方案

侃侃无极 2018-10-02 17:22:50
公司的 mobile app 是外包给其他公司做的,所以现在他们需要我们提供 API 接口进行调试,由于没有 API 开发的经验,所以现在一个比较难把握的问题就是如何实现服务器端与移动 APP 端通信时的用户身份认证问题。搜集了一些资料,大部分的建议是在服务器端生成一个 token 然后在通信报文的 headers 利用这个 token 来进行验证。这里有两个问题,首先这样直接生成 token 进行认证的安全性。其次,生成的 token 应该怎么保存呢?存在 DB 里面还是哪个地方?(服务器端使用的是 php)因为本身产品对安全性要求不是特别高,远没有达到网银之类的需求,所以在不考虑使用 oauth 等授权协议基础上,我比较希望知道一些常用的身份验证机制,以保证基本的安全性即可。再把问题写清楚点:1.怎么生成安全性比较高的 token。2.token 需不需要设置过期时间(考虑到是 mobile app,所以这个比较难设计,因为很少有人会在 app 上会 log out 再重新登录)。3.token 除了存在 db 内,有没有一些更方便合适的方式。
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

  1. APP里预埋一个token,结合时间戳/每次请求的一个随机值randstr,生成一个最终signature,在Server进行验证即可,(安全级别不是很高,但防大部分恶意请求没问题了)。

  2. 如果还需要针对不同用户生成不同的sigature,可以结合手机的DeviceId,在首次请求是上报这个,以后的请求就把DeviceId也作为因子带入sigature的生成里。当然,这个过程也不是绝对安全的。

看你的意思是不需要绝对安全的,所以猜测你的目的是防恶意请求的,以上两种方式应该可以满足了。


查看完整回答
反对 回复 2018-10-14
  • 2 回答
  • 0 关注
  • 1525 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信