我們公司準備用前後端分離做專案, 前後端為了保持登入狀態, 我看了網上很多都說的用token來保持登入, 現在我在token中直接存放md5(sessionid)可以麼?有沒有什麼問題?
本質上前端對數據進行encrypt是降低可讀性,例如用戶的敏感數據,處於隱私保護的目的。假如你傳遞的是seesion_id的話,是沒必要再進行encrypt的。至於上面有人提到的md5這樣的做法是錯誤的(針對傳遞seesion_id),因為本身seesion_id就是作為key來使用,md5屬於hash的一種方式(不可逆),後端如果要使用的話也是直接拿來用,你幾層md5都沒有意義了(如果被劫持了,直接就用了)
你提到的token問題,在於後端如何來實作authentication部分,是恢復session來儲存訊息,還是使用token來驗證介面呼叫權限。根據後端的實現方式不同而不同。
session是瀏覽器中放置的cookie來保存,依靠的是瀏覽器的cookie expire時間來控制登陸保持時間(客戶端角度)。
其餘的內容你參考下這個session cookie vs token
多加密幾層吧,一個md5太簡單了。
token你就直接在登陸 時有MD5加密 日期 就好了啊, 然後扔redis, 之後的在攔截器攔一下做個判斷就好了
只要不存放敏感的內容(密碼等),個人沒有問題的。建議使用現在流行的 jwt,各種語言都有實作的函式庫,使用起來還是非常方便的。
session id就是一個token,再md5反而多餘。
sessionid 本身不就是一個加密後明文的 token 麼…對它再 md5 沒必要啊
sessionid
完全可以,用jwt吧。在token 中要注意驗證合法性。
本質上前端對數據進行encrypt是降低可讀性,例如用戶的敏感數據,處於隱私保護的目的。假如你傳遞的是seesion_id的話,是沒必要再進行encrypt的。至於上面有人提到的md5這樣的做法是錯誤的(針對傳遞seesion_id),因為本身seesion_id就是作為key來使用,md5屬於hash的一種方式(不可逆),後端如果要使用的話也是直接拿來用,你幾層md5都沒有意義了(如果被劫持了,直接就用了)
你提到的token問題,在於後端如何來實作authentication部分,是恢復session來儲存訊息,還是使用token來驗證介面呼叫權限。根據後端的實現方式不同而不同。
session是瀏覽器中放置的cookie來保存,依靠的是瀏覽器的cookie expire時間來控制登陸保持時間(客戶端角度)。
其餘的內容你參考下這個session cookie vs token
多加密幾層吧,一個md5太簡單了。
token你就直接在登陸 時有MD5加密 日期 就好了啊, 然後扔redis, 之後的在攔截器攔一下做個判斷就好了
只要不存放敏感的內容(密碼等),個人沒有問題的。建議使用現在流行的 jwt,各種語言都有實作的函式庫,使用起來還是非常方便的。
session id就是一個token,再md5反而多餘。
sessionid
本身不就是一個加密後明文的 token 麼…對它再 md5 沒必要啊完全可以,用jwt吧。在token 中要注意驗證合法性。