V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
insert000
V2EX  ›  问与答

前后端分离架构下 CSRF,求比较好的实现机制

  •  
  •   insert000 · 2018-11-21 16:21:45 +08:00 · 2175 次点击
    这是一个创建于 1986 天前的主题,其中的信息可能已经有所发展或是发生改变。

    疑问: 1、如何把 token 下发给前端,让其请求的时候带上来 2、假设单独出一个生产 token 的接口给前端用于获取 token,那么这个接口一旦暴露出来,等于 token 可以被三方来生成 3、如果依靠 refer 来验证下发接口的安全域名,应该也是可以伪造的

    4 条回复    2018-11-21 18:06:32 +08:00
    kkikk
        1
    kkikk  
       2018-11-21 16:50:37 +08:00
    你先看看 csrf 的定义吧
    核心在于自己域名的 cookie 不能被第三方读取修改 你这三个问题根本不存在
    实现的话看看 django 的 csrf.py 就好
    EvilCult
        2
    EvilCult  
       2018-11-21 17:01:18 +08:00
    顺着楼上
    你这说说的不像是 CSRF,倒像是在说 JWT...
    也可以顺便看看.
    tomczhen
        3
    tomczhen  
       2018-11-21 17:02:46 +08:00 via Android
    csrf 的前提是基于浏览器,如果基于浏览器那么这三个问题要么不用考虑,要么无解。

    想规避业务风险,只能往别的方向。
    jswh
        4
    jswh  
       2018-11-21 18:06:32 +08:00
    同楼上,这不是 CSRF,是接口鉴权。

    2.假设单独出一个生产 token 的接口给前端用于获取 token,那么这个接口一旦暴露出来,等于 token 可以被三方来生成

    你这个攻击方都拥有客户端的权限了,你拦不住的。所有基于 HTTP 的接口都可以直接模拟的,只能说增加解析的难度。比如说,对传输的内容加密。然后代码混淆别人找不到你的加密方式,就没法正常的调用 api.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5389 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:11 · PVG 15:11 · LAX 00:11 · JFK 03:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.