我正在使用無cookie的方式管理我的項目(expressjs)中的會話,保留所有會話數據服務器端並在客戶端使用令牌(以前由服務器生成)在每個請求上驗證會話。管理會話的不同方式
將在用戶登錄時創建一個新的令牌並將其隱藏在頁面的某個位置,然後在每個請求中將此令牌寫入請求標頭和驗證的服務器端。此時服務器將在會話存儲中搜索令牌,可以說redis,並在找到令牌時獲取會話數據,否則將響應會話過期消息。
有一些事情我考慮這個:
- Redis的按鍵用戶登錄創建了一個穩定的到期。
- 每次在redis中找到會話數據時,我都必須'觸摸'鍵 ,這樣會延遲到期時間。
- 令牌將與客戶端的IP地址一起驗證,因此不能被其他人使用。
我的問題是如果這可以被認爲是與工作安全的方式,如果有什麼我很想念這裏。謝謝
您所做的與使用cookie與redis會話存儲非常相似,除了您使用的是自定義標頭而不是cookie標頭。所以是的,這是安全的。 – vkurchatkin
定義「保持隱藏在頁面的某處」。另外,這聽起來像是在嘗試重新創建會話cookie,還有一個缺點,就是您的瀏覽器可能採取的任何安全措施都會繞過cookie。 – robertklep
我的意思是將輸入隱藏在某個地方,毫無疑問,但是瀏覽器可能採取哪些安全措施會影響我的方法?考慮到我沒有做奇怪的事情,比如從一個域到另一個域 –