成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一種新的移動(dòng)APP保持登陸的實(shí)現(xiàn)機(jī)制介紹

移動(dòng)開(kāi)發(fā)
移動(dòng)APP和網(wǎng)頁(yè)登陸不同的一點(diǎn)就是,App不需要用戶每次使用都登陸,增加了易用性, 本文介紹一下App保持登陸的是實(shí)現(xiàn)機(jī)制。

[[194514]]

移動(dòng)APP的特點(diǎn)

移動(dòng)APP和網(wǎng)頁(yè)登陸不同的一點(diǎn)就是,App不需要用戶每次使用都登陸,增加了易用性, 本文介紹一下App保持登陸的是實(shí)現(xiàn)機(jī)制

目前常見(jiàn)的機(jī)制:

一 使用傳統(tǒng)的會(huì)話機(jī)制session

把網(wǎng)頁(yè)的機(jī)制照搬過(guò)來(lái),利用傳統(tǒng)網(wǎng)頁(yè)的記住登陸機(jī)制. 用戶輸入正確的用戶名和密碼后,創(chuàng)建登陸會(huì)話,同時(shí)生成一個(gè)記住登陸token保持在服務(wù)器端,同時(shí)發(fā)個(gè)客戶端. 客戶端每次啟動(dòng)時(shí),通過(guò)記錄登陸token新建會(huì)話,后續(xù)使用便采取session機(jī)制. 服務(wù)器端的可用Memcache 或 Redis 存儲(chǔ)會(huì)話.

回味一下這個(gè)機(jī)制,其中的記住登陸token,也可定個(gè)長(zhǎng)的有效期,比如30天, 記住登陸token類似Oauth 2.0 的 Refresh token, Session機(jī)制里的Session Id 類似Access token. 只不過(guò),Session機(jī)制里的Session Id 持續(xù)使用時(shí),會(huì)自動(dòng)延期.

這個(gè)機(jī)制的好處是充分利用現(xiàn)有知識(shí),簡(jiǎn)單易用,沒(méi)有太多新名詞概念不足之處是不便于分布式認(rèn)證,還有Session機(jī)制對(duì)性能有一小點(diǎn)影響, 同時(shí)不符合Restful API無(wú)狀態(tài)的設(shè)計(jì)精神.

二 使用一個(gè)有效期很長(zhǎng)的Token 機(jī)制

用戶正確登陸后,生成一個(gè)有效期很長(zhǎng)的Token(比如半年),保存在服務(wù)器端,同時(shí)發(fā)給客戶端, 客戶端的每次請(qǐng)求就以這個(gè)Token驗(yàn)證身份. 采用https 傳輸加密, Token中途不會(huì)被獲取, 而保存在本地的Token其他程序也訪問(wèn)不了. 對(duì)應(yīng)普通應(yīng)用而言,這個(gè)方案也是可以的.

三 使用一個(gè)長(zhǎng)期的Refresh Token 和 短期的Access Token.

對(duì)于方案二, 如果手機(jī)硬件本身被黑客獲取過(guò), 長(zhǎng)期Token可能被盜,有潛在的風(fēng)險(xiǎn). 考慮到這一點(diǎn), Oauth 2.0 標(biāo)準(zhǔn)推薦采用Refresh Token和Access Token. Refresh Token 有效期很長(zhǎng), Access Token 有效期很短. 用戶登陸后,同時(shí)獲得Refresh Token 和 Access Token,平時(shí)就用 Access Token, Access Token 過(guò)期后就用Refresh Token 獲取新的Access Token.

這個(gè)方案使用很廣泛,包括微信公眾平臺(tái)開(kāi)發(fā) 也使用這個(gè)機(jī)制

但細(xì)細(xì)一想, 這個(gè)機(jī)制并不比方案二(使用一個(gè)長(zhǎng)期的token)安全, 黑客如果能夠獲取Access Token,獲取Refresh Token也不難,采用兩個(gè)token 僅僅是給黑客增加點(diǎn)小麻煩.

一旦黑客獲取了獲取Refresh Token, 就可反復(fù)的刷新的Access Token

本文介紹一種新的機(jī)制

Token以舊換新的機(jī)制

這個(gè)機(jī)制只使用一個(gè)短期的Token,比如1天. 用戶登陸后, 這個(gè)Token發(fā)給客戶端, 用戶每次請(qǐng)求就使用這個(gè)Token認(rèn)證身份, Token過(guò)期后憑此token換取新的Token,一個(gè)過(guò)期的Token只能換取一個(gè)新的Token,這是關(guān)鍵. 如果Token被盜, 黑客要持續(xù)使用也需持續(xù)的換取新的Token, 服務(wù)器一旦發(fā)現(xiàn),一個(gè)舊Token多次試圖換取新Token,表示有異常. 這時(shí)強(qiáng)制用戶再次登陸. Token舊換新,不一定等過(guò)期了才換,應(yīng)用啟動(dòng)時(shí)就可舊換新,這個(gè)視具體情況而定.

這個(gè)Token的有效期,針對(duì)不同的應(yīng)用可以調(diào)整. 以設(shè)計(jì)招商銀行的app為例:

  1. 采用https 加密,確保傳輸安全.
  2. Token的有效期設(shè)為15分鐘,Token每15分鐘,以舊換新?lián)Q取新的Token. 正常情況下,這個(gè)以舊換新對(duì)用戶不可見(jiàn),一但兩人試圖以舊換新,兩人都阻止,需要再次登陸.
  3. 對(duì)于修改密碼和轉(zhuǎn)賬支付這樣的關(guān)鍵操作,要求用戶輸入密碼. 這樣就萬(wàn)無(wú)一失了.

重復(fù)一下,設(shè)計(jì)安全機(jī)制時(shí),一定要使用https, 沒(méi)有https, 多數(shù)安全設(shè)計(jì)都是無(wú)用功

附: Token 簡(jiǎn)介

Token 中文的翻譯就是令牌, 識(shí)別身份的依據(jù). 通常token有兩種:

一 不含內(nèi)容的token

這種token這是一個(gè)唯一的hash值, 要知道這個(gè)token是誰(shuí),要到一個(gè)中心服務(wù)器查詢. 在中心服務(wù)器,用戶數(shù)據(jù)可能儲(chǔ)存于文件或是數(shù)據(jù)庫(kù)或是Redis等. 在session 機(jī)制的Cookie里 有一個(gè)session id, 本質(zhì)上也是一個(gè)這類token.

二 包含內(nèi)容的token

這種token, 就像一個(gè)身份證,包含公開(kāi)的用戶信息, 通過(guò)簽名機(jī)制確保token無(wú)法偽造. 最常見(jiàn)的這類token 就是: Json web token (JWT) 這種token好處是不用到中心服務(wù)器查詢,對(duì)于分布式系統(tǒng)很有用, 比如用戶登陸后,要看視頻,要下載文件. 而視頻,文件資源都需驗(yàn)證用戶身份,視頻,文件資源在不同的服務(wù)器,甚至由不同的公司提供,這時(shí)可分布式驗(yàn)證的JWT就很有用. 這種可分布式驗(yàn)證的Token通常發(fā)行了就不能注銷(xiāo),只能等其自行過(guò)期失效. 這時(shí)為了保證安全性,使用短期JWT,再加上述的token以舊換新,就很有效.

本文所說(shuō)的Token舊換新機(jī)制,對(duì)上述兩種token均適用. Token 就是一個(gè)字符串信息,就算復(fù)制一萬(wàn)份,彼此也毫無(wú)差別, 有了以舊換新的機(jī)制,Token就有點(diǎn)像實(shí)物了, 已經(jīng)換過(guò)了自然不能再換,不管有多少份,只能有一個(gè)換取新的Token 當(dāng)兩個(gè)人先后拿著同一個(gè)token 來(lái)?yè)Q新,我們不能判斷到底哪個(gè)合法,哪個(gè)非法,好吧,兩人都再次登陸確認(rèn)身份吧.

更新

  • 對(duì)于普通的應(yīng)用,有效期設(shè)為24小時(shí),每次啟動(dòng)應(yīng)用時(shí)換一下token就可以,不用太復(fù)雜
  • 對(duì)于網(wǎng)銀這樣的應(yīng)用, 啟動(dòng)時(shí)換一下, 再加上用個(gè)定時(shí)器(timer),每15分鐘換一下token就可以. 
責(zé)任編輯:龐桂玉 來(lái)源: huanghq的博客
相關(guān)推薦

2011-12-28 21:18:18

App

2018-12-14 14:30:12

安全檢測(cè)布式系測(cè)試

2024-02-26 00:00:00

sessionredis項(xiàng)目

2021-09-15 09:00:00

Github工具資源控制管理器

2010-11-05 10:15:42

云計(jì)算

2022-06-23 07:05:46

跳板機(jī)服務(wù)器PAM

2022-08-08 08:22:22

量子計(jì)算

2011-07-04 17:53:48

快速測(cè)試

2013-03-12 14:07:06

Java編程

2013-07-05 13:23:43

蘋(píng)果

2023-12-04 08:21:18

虛擬線程Tomcat

2022-04-06 12:00:46

HEAT安全架構(gòu)新威脅

2022-07-28 11:29:23

數(shù)據(jù)安全數(shù)據(jù)令牌化

2009-06-03 15:38:37

Struts框架RBAC

2013-05-22 15:31:07

AOP的CGlib實(shí)現(xiàn)

2017-02-20 09:00:49

2020-12-16 10:12:52

大數(shù)據(jù)小數(shù)據(jù)人工智能

2019-11-22 09:21:17

技術(shù)研發(fā)數(shù)據(jù)

2010-03-10 09:44:51

Linux啟動(dòng)引導(dǎo)加密

2016-10-26 09:12:58

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人在线观看网址 | 亚洲国产偷 | 污污的网站在线观看 | 中文字幕第十五页 | 国产一级在线 | 亚洲成人中文字幕 | 国产精品免费看 | 久久精品com| 亚洲国产精品久久久久 | 国产一区二区三区 | 国产精品久久久久久久久久99 | 91精品国产乱码久久久久久久久 | 天天干狠狠 | 精品国产91亚洲一区二区三区www | 精品国产一区二区三区观看不卡 | 亚洲成人免费视频在线 | 久久国产精品视频 | 综合另类 | 亚洲一区中文字幕 | 久久久久免费精品国产 | 一区二区视频 | 91久久久久 | 日韩国产一区二区三区 | 成人精品免费视频 | 中文字幕一区二区三区四区 | 国产精品久久久久久久久久久久久 | 一区二区视频 | 精品国产欧美 | 日本在线视 | 福利视频网址 | 亚欧洲精品在线视频免费观看 | 国产香蕉视频在线播放 | 久久久高清 | 天堂av在线影院 | 久久久久国产精品一区二区 | 久久久久久蜜桃一区二区 | 2018国产精品 | 国产一区二区在线免费 | 毛片一区二区三区 | 黑色丝袜三级在线播放 | 久久99精品久久 |