首頁  >  問答  >  主體

java - jwt token安全性問題.

A,B系統是前後端分離的。
(兩個系統跨域)
現在A系統一個頁面跳到B系統。
現在是用的跳到B系統,網址列帶了一個加密token (包含用戶id).幫其自動登陸上了。
此頁面顯示的商品資訊和該使用者的折扣。

此時假如我知道了別人的token,然後修改網址列。頁面就變成別人的訊息了。

此時我都不知道別人的帳號密碼,然後就獲得了別人的一些使用者資訊.

#
高洛峰高洛峰2664 天前1126

全部回覆(4)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-03 11:45:27

    https加密吧,Http協議本身就不安全,明文的。
    這幾位說的對,我說錯了

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-03 11:45:27

    1. 最簡單的辦法,也是比較安全的辦法。在b站幫其登入的時候,再彈次框。讓其確認密碼!

    2. 有個叫csrf的令牌或。隨機數的辦法。值得你擁有。 csrf令牌就是限制這樣的跨域攻擊的

    3. JWT的驗證token是要放到header裡的,你可以考慮授權認證

    回覆
    0
  • 高洛峰

    高洛峰2017-07-03 11:45:27

    首先token的出現就是為了解決使用者驗證的問題 既然是兩個系統了就應該避免自動登入的這種情況 這是很不安全的。
    不過你既然有這樣的需求那隻有盡量側面規避了,給個方案:token中盡量避免敏感信息,其次就是在授權跨系統的token時把這個token的授權設為一次性的並且壓縮token的有效時間如此token只辦30分鐘內有效
    其實你可以參考現在的很多第三方登入如微博等授權的token都只包含暱稱,頭像等少量資訊

    回覆
    0
  • PHP中文网

    PHP中文网2017-07-03 11:45:27

    題主這是真實場景的狀況嗎?

    如果你能得到別人的 token,相當於竊聽了他的密碼,這不是 JWT 的安全問題。

    與 JWT 本身有關的措施,就是加入過期時間,強制 JWT 在一定時間後失效。

    根據 JWT 規範,JWT 最好是放在請求頭部 Authorization 中,不要放在 URL 裡。

    HTTPS 是有用的。

    回覆
    0
  • 取消回覆