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的接口(比如//api.zhiorange.com/get_token/),用post將用戶名和密碼的摘要傳遞給服務器,然后服務器比對數據庫中的用戶信息,匹配則返回綁定該用戶的token(這一般翻譯為令牌,很直觀的名字,一看就知道是有了這玩意,就會對你放行),而數據庫中,在用戶的token表中也同時插入了這個token相關的數據:這個token屬于誰?這個token的有效期是多久?這個token當前登錄的ip地址是?這個token對應的deviceid是?……
這樣即便token被有心人截獲,也不會造成太大的安全風險。因為沒有用戶名和密碼,然后如果黑客通過這個token偽造用戶請求,我們在服務器端接口被調用時就可以對發起請求的ip地址、user-agent之類的信息作比對,以防止偽造。再然后,如果token的有效期設得小,過一會兒它就過期了,除非黑客可以持續截獲你的token,否則他只能干瞪眼。