csrf处理
invalid csrf token
// security
config.security = {
// csrf
csrf: {
useSession: true, // 开启session
sessionName: 'csrfToken',
cookieName: 'csrfToken',
headerName: 'x-csrf-token'
}
}
- 从egg-security源码中得知,如果选择useSession,则生成的token会在session中保管,可以通过接口response中的具体字段回传给用户token,也可以手动放在cookie中,也可以放在header中。验证的时候,可以指定来源,比如headerName,cookieName。核心是它不会自动往cookie设置token
- 如果关闭session,且有cookieName,则会自动编辑cookie,往客户方向传递token,可以指定返回时的取值方式,queryName | bodyName | headerName,不能通过其他方式
场景解释
跨站请求伪造
在b页面中点击a页面的链接,可以携带a的cookie,但是不会携带header,在预先放好的token通过header获取,则可以识别出来是否跨站请求伪造