2013-07-18 54 views
5

而不是使用cookie我使用JWT令牌隨每個請求一起發送。每個請求都是一個POST請求,以便該令牌不會保存在瀏覽器的歷史記錄中。在啓用SSL的站點上使用JWT而不是Cookie

這是一個單頁的應用程序。

令牌的樣子:

{ 
    userId: 12345678, 
    expires: <UNIX timestamp>, 
    otherInfo: <something> 
} 

一切都是SSL安全。 用戶登錄時,會在服務器上創建令牌。

這是替換cookie的好方法還是你看到任何缺陷?

+0

即使對於GET請求,爲什麼瀏覽器歷史記錄會成爲單頁面應用程序的問題? AJAX請求不會落入瀏覽器歷史記錄中。不過最好將標記放入「授權」標頭中,因此,如果您使用GET,它不會意外出現在訪問日誌中。 –

回答

1

不,這不是一個好的解決方案。使用cookie(具有httpOnly標誌)用於交叉請求持久性是而不是可選 - 這是安全存儲會話憑據的唯一方式,使頁面JavaScript代碼無法直接訪問它。

這是防止例如,會話竊取在XSS攻擊中,通過確保腳本無法訪問憑證,但仍然可以在對服務器的請求中使用它們。

您對JWT的使用似乎並不能真正解決問題,爲什麼您不能僅僅使用現有的會話實現來使用會話cookie?這種事情正是他們所爲。

相關問題