国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JWT必知必會(huì)

張金寶 / 1579人閱讀

摘要:最近,項(xiàng)目的安全認(rèn)證機(jī)制全面采用。為了伸縮性考慮,采用機(jī)制,必然面臨著應(yīng)用狀態(tài)的問(wèn)題,而且必然牽涉到的復(fù)制。為了安全性考慮,機(jī)制僅驗(yàn)證時(shí)天然對(duì)免疫。若有可能,使用標(biāo)志。采用來(lái)防止這是因?yàn)椋谡军c(diǎn)上發(fā)起向站點(diǎn)的請(qǐng)求時(shí),站點(diǎn)的同樣會(huì)被發(fā)送給。

最近,項(xiàng)目的安全認(rèn)證機(jī)制全面采用JWT。現(xiàn)在,趁整個(gè)工作基本告一段落之際,將一些知識(shí)點(diǎn)總結(jié)一下發(fā)布出來(lái)。

為什么要遷移?

原因很簡(jiǎn)單,就以下幾點(diǎn):

為了遷移到微服務(wù)架構(gòu),由于服務(wù)分拆之后,單一的登錄入口點(diǎn)消失了,采用Token是必然之選。

為了伸縮性考慮,采用Cookie + Session機(jī)制,必然面臨著應(yīng)用狀態(tài)的問(wèn)題,而且必然牽涉到session的復(fù)制。采用Token,天然避免這一點(diǎn)。這里并非是指完全無(wú)Session化,但起碼可以降至最少。

為了移動(dòng)端考慮,Token更適合移動(dòng)端,比Cookie更靈活了。

為了安全性考慮,Token機(jī)制【僅驗(yàn)證request header時(shí)】天然對(duì)CSRF免疫。

JWT為何物?

JWT由三部分組成:header + payload + signature,每部分是一個(gè)Json表示。最終的Token對(duì)這三部分進(jìn)行編碼之后的字符串,中間用“.”分割:

token = encodeBase64(header) + "." + encodeBase64(payload) + "." + encodeBase64(signature) # token is now: 
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dnZWRJbkFzIjoiYWRtaW4iLCJpYXQiOjE0MjI3Nzk2Mzh9.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI 

在應(yīng)用與服務(wù)器之間傳遞的就是上述字符串形式的Token。

如何使用JWT?

使用JWT的應(yīng)用基本都遵循下面的使用流程:

訪問(wèn)登錄點(diǎn)。

登錄服務(wù)驗(yàn)證之后,簽發(fā)證書(shū)返回給客戶端。

客戶端保存證書(shū),并在每次請(qǐng)求時(shí)將其附在request header中,表示已經(jīng)登錄。

服務(wù)器接收請(qǐng)求之后,通過(guò)簽名和時(shí)戳,驗(yàn)證Token的有效性。

若有效,則響應(yīng)客戶端。

對(duì)應(yīng)的request header如下:

Authorization:Bearer 

整個(gè)過(guò)程如下圖:

在一般的應(yīng)用中,驗(yàn)證成功之后,服務(wù)器可能會(huì)在Cookie或Session中保留一些用戶相關(guān)的額外信息,簡(jiǎn)化后續(xù)的編程,同時(shí)避免反復(fù)讀取數(shù)據(jù)庫(kù)。

在JWT,同樣可以實(shí)現(xiàn)這樣的功能:只需將相應(yīng)的內(nèi)容放入payload即可。這樣,下次從客戶端發(fā)送的token中便可以解碼得出。

驗(yàn)證JWT的有效性時(shí),會(huì)考慮至少下面兩點(diǎn):

簽名是否正確?

Token是否到期?

整個(gè)過(guò)程的編碼其實(shí)并不復(fù)雜,請(qǐng)參見(jiàn)文后的鏈接,這里不再啰嗦。

使用中的注意事項(xiàng)

出于安全性,注意以下幾點(diǎn):

簽名證書(shū)需要安全存放

不要將敏感信息放置于token中

請(qǐng)結(jié)合SSL使用

如果要在Cookie中保存Token【此時(shí),服務(wù)器要同時(shí)驗(yàn)證cookie或header中是否有token】

留意Token的大小超過(guò)Cookie的限制

請(qǐng)使用HttpOnly標(biāo)志。若有可能,使用Secure標(biāo)志。

采用Synchronize Token來(lái)防止CSRF【這是因?yàn)椋贏站點(diǎn)上發(fā)起向B站點(diǎn)的請(qǐng)求時(shí),B站點(diǎn)的Cookie同樣會(huì)被發(fā)送給B。若不使用另一個(gè)Token來(lái)防護(hù),則無(wú)法得知cookie中的JWT是否屬于從A->B,還是從B->B。目前,大部分現(xiàn)有的框架已經(jīng)支持】。

為了防止replay attack,可加上jti、exp和iat聲明

以上是對(duì)JWT的旋風(fēng)式說(shuō)明,其他的內(nèi)容,請(qǐng)參見(jiàn)參考文獻(xiàn)。

參考文獻(xiàn)

Get Started with JSON Web Tokens

Introduction to JSON Web Tokens

維基百科上的JWT

Vert.x Web的JWT例子

Where to Store your JWTs – Cookies vs HTML5 Web Storage

Use JWT The Right Way!

Authentication: Cookies vs JWTs and why you’re doing it wrong

How to store a JWT token inside an HTTP only cookie?

Cookies vs Tokens: The Definitive Guide

管理JWT的生命周期

JWT規(guī)范

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/11225.html

相關(guān)文章

  • 前端必知必會(huì)HTTP請(qǐng)求系列(二)簡(jiǎn)單一點(diǎn)的HTTP協(xié)議

    摘要:通過(guò)請(qǐng)求和響應(yīng)的交換達(dá)成通信協(xié)議中已經(jīng)規(guī)定了請(qǐng)求是從客戶端發(fā)出,最后由服務(wù)端響應(yīng)這個(gè)請(qǐng)求并返回。隨后的字符串指明了請(qǐng)求訪問(wèn)的資源對(duì)象。協(xié)議自身不對(duì)請(qǐng)求和響應(yīng)之間的通信狀態(tài)進(jìn)行保存,也就是說(shuō)這個(gè)級(jí)別。從前發(fā)送請(qǐng)求后需等待并受到響應(yīng)。 showImg(https://segmentfault.com/img/bVbmDsG?w=1024&h=538); http協(xié)議用戶客戶端和服務(wù)器之間的...

    xbynet 評(píng)論0 收藏0
  • 前端必知必會(huì)HTTP請(qǐng)求系列(三)HTTP報(bào)文內(nèi)的http信息

    摘要:報(bào)文用于協(xié)議交互的信息被稱為報(bào)文。現(xiàn)在出現(xiàn)的各種首部字段及狀態(tài)碼稍后會(huì)闡述。狀態(tài)碼響應(yīng)報(bào)文包含了多個(gè)范圍的內(nèi)容使用。如果服務(wù)器無(wú)法響應(yīng)范圍請(qǐng)求,則會(huì)返回狀態(tài)碼和完整的實(shí)體內(nèi)容。 showImg(https://segmentfault.com/img/bVbthNL?w=900&h=500); http報(bào)文 用于HTTP協(xié)議交互的信息被稱為HTTP報(bào)文。請(qǐng)求端的http報(bào)文叫做請(qǐng)求報(bào)文...

    Invoker 評(píng)論0 收藏0
  • java必知必會(huì)之SecureSocket

    SSL,Secure Sockets Layer,安全Socket層TLS,Transport Layer Security,傳輸層安全協(xié)議 package network.secure; import java.io.*; import javax.net.ssl.*; public class HTTPSClient { public static void main(Strin...

    kidsamong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

張金寶

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<