app开发如何保存用户登录及调用接口安全
  • 智网科技
  • 日期: 2019-06-14
  • 分类: 智网新闻
  • 阅读量: 401

一、在app中如何维持用户登陆状态?

 app维持用户登陆状态一般使用cookietoken这两种方法,cookie最初是解决http连接无状态问题的产物,用于客户端和服务端共同维护一些状态数据。cookie会被附加到http请求中,这不需要开发者做额外的支持。cookie存在一个最大长度的问题(4KB?)。token通常作为验证后的凭证,免除在一定时间内的重复验证。token的存储和参数传递都需要开发者来处理。使用cookie来维持登录态,在实现过程中实际上是在cookie中添加一个token来维持一个登录态。

 二、调用后端接口怎么样才安全?
 
 
1 APP中保存登录数据,每次调用接口时传输
  
  
程序员总能给自己找到偷懒的方法,有的程序为了省事,会在用户登录后,直接把用户名和密码保存在本地,然后每次调用后端接口时作为参数传递。真省事儿啊!可这种方法简单就像拿着一袋子钱在路上边走边喊快来抢我呀!快来抢我呀!,一个小小的嗅探器就能把用户的密码拿到手,如果用户习惯在所有地方用一个密码,那么你闯大祸了,黑客通过撞库的方法能把用户的所有信息一锅端。


 
2)登录时请求一次token,之后用token调用接口


  
这是比较安全的方式,用户在登录时,APP调用获取token的接口(比如http://api.zhiorange.com/get_token/),用post将用户名和密码的摘要传递给服务器,然后服务器比对数据库中的用户信息,匹配则返回绑定该用户的token(这一般翻译为令牌,很直观的名字,一看就知道是有了这玩意,就会对你放行),而数据库中,在用户的token表中也同时插入了这个token相关的数据:这个token属于谁?这个token的有效期是多久?这个token当前登录的ip地址是?这个token对应的deviceid是?……
这样即便token被有心人截获,也不会造成太大的安全风险。因为没有用户名和密码,然后如果黑客通过这个token伪造用户请求,我们在服务器端接口被调用时就可以对发起请求的ip地址、user-agent之类的信息作比对,以防止伪造。再然后,如果token的有效期设得小,过一会儿它就过期了,除非黑客可以持续截获你的token,否则他只能干瞪眼。