2017-03-09 153 views
1

我在我的Asp.Net Web API應用程序中使用JWT實現了用戶身份驗證。無論何時用戶登錄,它都可以正常工作,訪問令牌會生成並返回給客戶端,並且客戶端會返回每個訪問受保護資源的請求。但是,如果我複製相同的訪問令牌,並使用相同的訪問令牌從其他任何客戶端(如郵遞員)準備請求,則它將訪問受保護的資源。我認爲這是一種正常的行爲。但是有沒有更好的解決辦法來擺脫這種情況,即使使用相同的訪問令牌也不允許任何其他客戶端。所以這也是爲了讓它具有客戶特定性。Asp.Net Web API JWT身份驗證

回答

0

如果您不希望任何其他入侵者複製您的訪問令牌並訪問受保護的資源,那麼您必須使用SSL

爲了保護極其敏感的數據,您應該將令牌生存期保持在非常短的時間窗口內。如果你保護的東西不太敏感,你可以延長壽命。令牌的有效時間越長,攻擊者在用戶的計算機遭到入侵時將不得不模擬經過身份驗證的用戶的時間窗口。

您可以檢查this great answer學習一些東西

0

你應該傳遞一個用戶名和密碼,以獲得在首位的令牌。該密碼是提供安全性的私鑰,以確保其他人無法爲該用戶獲取令牌。只要您的流量超過https(ssl),那麼該令牌在傳輸過程中受到保護,而其他任何人都不應該攔截它。