YII环境下前后端分离如何传递CSRF_TOKEN

现在项目后台用的是YII,然后想做前后端分离,前后端分开部署,前端直接用一个静态服务器,
有个问题YII开启CSRF之后,页面上的POST请求都需要带上这个TOKEN,原来是直接后台render页面的时候直接把这个TOKEN放到页面中然后请求的时候用JS带上,
那么在前后端分离的情况下这个TOKEN该怎么取?或者前后端分离的情况下有什么别的方法来防止CSRF安全问题?

阅读 5.5k
3 个回答

不用CSRF_TOKEN,类似laravel通过中间件对接口进行校验,可以使用jwt.io

在前端页面里这样写,默认携带token

$(document).ajaxSend(function(a, b, c) {
        if (c.type == 'POST') {
            b.setRequestHeader('X-CSRF-Token', $('meta[name=csrf-token]').attr('content'));
        }
    });

不用CSRF_TOKEN 用Token 令牌

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进