V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xiaojinmaolove
V2EX  ›  程序员

jwt token 可以防住 csrf 攻击吗???

  •  
  •   xiaojinmaolove · 2019-08-19 15:32:44 +08:00 · 4703 次点击
    这是一个创建于 1949 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,大佬们能否指导一下呢

    11 条回复    2019-08-20 10:11:30 +08:00
    Carseason
        1
    Carseason  
       2019-08-19 15:34:46 +08:00 via iPhone
    可以自己做个中间件来验证
    arrow8899
        2
    arrow8899  
       2019-08-19 15:42:36 +08:00
    可以的,一般都是验证 Referer 和 验证 token,但是注意 token 不要放 cookie 里面。
    elioti
        3
    elioti  
       2019-08-19 18:45:27 +08:00
    前端把 jwt token 放到请求头, 后端从请求头获取 token.
    default7
        4
    default7  
       2019-08-19 18:46:40 +08:00
    gRPC 替代
    wuwukai007
        5
    wuwukai007  
       2019-08-19 18:54:22 +08:00 via Android
    前端一般把 token 存在哪呢?
    DavidNineRoc
        6
    DavidNineRoc  
       2019-08-19 19:35:39 +08:00   ❤️ 1
    你先百度一下
    csrf 是什么,
    jwt 又是用来做什么,
    你就知道能不能防止了. 答案是不能.
    wangxiaoaer
        7
    wangxiaoaer  
       2019-08-19 19:42:33 +08:00 via Android
    @DavidNineRoc 如果 token 不是通过 cookie 带过去,而且存在某个地方,通过请求头传递到后台的话,为什么不能防?
    also24
        9
    also24  
       2019-08-19 20:08:15 +08:00   ❤️ 1
    @wangxiaoaer #7
    因为楼主的提问存在二义性:
    A:是否可以通过使用 jwt token,来达到防范 csrf 的目的?(即 jwt token 是 “保护手段”)
    B:使用 jwt token 的过程中,是否可以通过某种方式防范 csrf 攻击?(即 jwt token 是 “保护对象”)

    A 的答案:否。也就是 6 楼的意思。
    B 的答案:是。也就是你的意思。
    nnnToTnnn
        10
    nnnToTnnn  
       2019-08-20 09:19:11 +08:00
    Q:JWT 是什么?
    A:JSON Web Token , 生成的方式如下

    ```
    const token = base64urlEncoding(header) + '.' + base64urlEncoding(payload) + '.' + base64urlEncoding(signature)
    ```

    主要作用是为做无状态的 session,避免服务器频繁查询 session


    Q: 那么 JWT 安全吗?
    A: 很显然,JWT 不是为了安全设计的


    --------------------------------------------------------------------



    而 csrf 是伪造跨站请求,不等于盗取 token
    xxxy
        11
    xxxy  
       2019-08-20 10:11:30 +08:00
    只有 9 楼是对的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1727 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:39 · PVG 00:39 · LAX 08:39 · JFK 11:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.