2016-08-17 60 views
1

假設我爲用戶創建一個JWT令牌,並設置有效載荷爲:智威湯遜:我有多少可以信任我的有效載荷

['userID'=>1, 'role'=>'user'] 在使用HTTPS和SSL的情況下,它是安全的發送角色或任何其他敏感信息通過負載?發送者有可能操縱有效負載值嗎?

UPDATE:現在我知道JWT令牌是可解碼的。但是因爲它們帶有一個簽名,所以對這些值的任何更新都會使該令牌無效。如果您希望有效負載完全加密,請嘗試使用JWE

回答

1

JWT令牌由髮卡行進行數字簽名,因此無需修改簽名即可對其進行修改。

HTTPS僅用於防止令牌被盜。

2

有效負載中的聲明無法用鍵處理,常見示例是admin = false,客戶端和服務器都可以看到該用戶不是管理員。如果用戶試圖操縱令牌(成爲管理員),它將無法正確驗證。這就是爲什麼在閱讀他們的任何聲明之前驗證你的代幣至關重要。

但是,您通常不會將敏感信息(如信用卡號碼)放在其中,因爲索賠沒有加密,但是沒有人應該能夠訪問您的令牌,否則他們將能夠接管您的會話。

有此操作令牌https://jwt.io/

+0

那麼,所有的權利,以消費者爲純文本可見的一齣戲?我的意思是,如果一個令牌編碼爲ugly1.ugly2.ugly3字符串,並且祕密不會泄露給消費者,那麼如何解密有效載荷? – HPM

+0

查看堆棧溢出文檔[JSON Web Tokens介紹](http://stackoverflow.com/documentation/jwt/5213/introduction-to-json-web-tokens/18559/signed-jwt-jws#t = 201608220422564473964)。他們是base64編碼的,你不需要一個密鑰來解碼。 (Google:base64解碼) – Alex