现在项目后台用的是YII,然后想做前后端分离,前后端分开部署,前端直接用一个静态服务器,
有个问题YII开启CSRF之后,页面上的POST请求都需要带上这个TOKEN,原来是直接后台render页面的时候直接把这个TOKEN放到页面中然后请求的时候用JS带上,
那么在前后端分离的情况下这个TOKEN该怎么取?或者前后端分离的情况下有什么别的方法来防止CSRF安全问题?
现在项目后台用的是YII,然后想做前后端分离,前后端分开部署,前端直接用一个静态服务器,
有个问题YII开启CSRF之后,页面上的POST请求都需要带上这个TOKEN,原来是直接后台render页面的时候直接把这个TOKEN放到页面中然后请求的时候用JS带上,
那么在前后端分离的情况下这个TOKEN该怎么取?或者前后端分离的情况下有什么别的方法来防止CSRF安全问题?
在前端页面里这样写,默认携带token
$(document).ajaxSend(function(a, b, c) {
if (c.type == 'POST') {
b.setRequestHeader('X-CSRF-Token', $('meta[name=csrf-token]').attr('content'));
}
});
3 回答713 阅读
1 回答1.4k 阅读
1 回答862 阅读
不用CSRF_TOKEN,类似laravel通过中间件对接口进行校验,可以使用
jwt.io