java - jwt token安全性問題.
問題描述
A,B系統(tǒng)是前后端分離的。(兩個系統(tǒng)跨域)現(xiàn)在A系統(tǒng)一個頁面跳轉(zhuǎn)到B系統(tǒng)中。現(xiàn)在是用的跳轉(zhuǎn)到B系統(tǒng),地址欄中帶了一個加密token (包含用戶id).幫其自動登陸上了。此頁面顯示的商品信息和該用戶的折扣。
此時假如我知道了別人的token,然后修改地址欄。頁面就變成別人的信息了。
此時我都不知道別人的賬號密碼,然后就獲得了別人的一些用戶信息.
問題解答
回答1:https加密吧,Http協(xié)議本身就不安全,明文的。這幾位說的對,我說錯了
回答2:最簡單的辦法,也是比較安全的辦法。在b站幫其登錄的時候,再彈次框。讓其確認密碼!
有個叫csrf的令牌或者。隨機數(shù)的辦法。值得你擁有。csrf令牌就是限制這樣的跨域攻擊的
JWT的驗證token是要放到header里的,你可以考慮授權(quán)認證
回答3:首先token的出現(xiàn)就是為了解決用戶驗證的問題 既然是兩個系統(tǒng)了就應該避免自動登錄的這種情況 這是很不安全的。不過你既然有這樣的需求 那只有盡量側(cè)面規(guī)避了,給個方案:token中盡量避免敏感信息 ,其次就是在授權(quán)跨系統(tǒng)的token時 把這個token的授權(quán)設(shè)為一次性的 并且壓縮token的有效時間 如此token只辦30分鐘內(nèi)有效其實你可以參考現(xiàn)在的很多第三方登錄 如微博等 授權(quán)的token都只包含昵稱,頭像等少量信息
回答4:題主這是真實場景的情況嗎?
如果你能得到別人的 token,相當于竊聽了他的密碼,這不是 JWT 的安全問題。
與 JWT 本身有關(guān)的措施,就是加入過期時間,強制 JWT 在一定時間后失效。
根據(jù) JWT 規(guī)范,JWT 最好是放在請求頭部 Authorization 中,不要放在 URL 里。
HTTPS 是有用的。
相關(guān)文章:
1. javascript - 游戲里物體角色層次渲染邏輯和代碼怎么寫才好?2. javascript - 關(guān)于Lazyload遇到的問題3. java - 我在用Struts2上傳文件時,報以下錯誤怎么回事?4. javascript - 如果根據(jù)參數(shù)給table中的tr綁定不同事件5. 算法 - python 給定一個正整數(shù)a和一個包含任意個正整數(shù)的 列表 b,求所有<=a 的加法組合6. angular.js - react的redux和vue的vuex,angular呢7. java題目 任意一個字符串 倒置輸出,保持單詞的完整性8. javascript - js一個小的算法問題,找個好一點的答案。9. javascript - js 寫一個正則 提取文本中的數(shù)據(jù)10. javascript - 新組成的數(shù)組打印出來出現(xiàn)問題,里面有對象,但長度為空
