JWT的簡化,與防篡改的機制
JWT是什麼?
JWT(JSON Web Token)是網站前端框架呼叫後端框架的時候,很重要的一個判斷驗證方法。
但JWT並不用完整的組件,那個太龐大了,只要知道理論,就可以程式簡單的實踐。
拆解JWT
我將JWT分為幾個部分:
- 開頭:如果開頭不對就直接否決掉這個Token,比如可以用J::或J..。如果開頭不是這個就直接傳回驗證錯誤。
- 要傳遞的資訊:這邊可以傳遞使用者用戶,甚至簡單的權限都可以傳遞節省資料庫驗證時間。
- 驗證部分:驗證部分會用雜湊法將前面的要傳遞的資訊以字串格式做雜湊,並且後端加密。在驗證時只要在後端解密,把傳遞的資訊雜湊一次,兩個雜湊值相等就是驗證通過。
解釋一下,雜湊通常用MD5或SHA256,只要差一個字元就會差很多,因此只要竄改一點點大概沒有辦法通過驗證,因為驗證的加密都在後端,所以後端不要被破解別人沒辦法知道怎樣加密的。
加密要用什麼演算法,前面文章大概有寫,是我我會實踐成:
J.[XOR加密的傳遞資訊].[驗證的資訊]
結論
這樣一串的字串就可以讓Web API可以核對身份(比如說去資料庫抓權限),或是權限本身就在傳遞的資訊裡,讓API知道哪些可以做哪些不能做。
這個大概要想想怎樣做比較漂亮,這就交給您自己想了。
我們下篇文章再會。
What's your reaction?
Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0