csrf处理

invalid csrf token


  1. // security
  2. config.security = {
  3. // csrf
  4. csrf: {
  5. useSession: true, // 开启session
  6. sessionName: 'csrfToken',
  7. cookieName: 'csrfToken',
  8. headerName: 'x-csrf-token'
  9. }
  10. }
  1. 从egg-security源码中得知,如果选择useSession,则生成的token会在session中保管,可以通过接口response中的具体字段回传给用户token,也可以手动放在cookie中,也可以放在header中。验证的时候,可以指定来源,比如headerName,cookieName。核心是它不会自动往cookie设置token
  2. 如果关闭session,且有cookieName,则会自动编辑cookie,往客户方向传递token,可以指定返回时的取值方式,queryName | bodyName | headerName,不能通过其他方式

场景解释

跨站请求伪造

在b页面中点击a页面的链接,可以携带a的cookie,但是不会携带header,在预先放好的token通过header获取,则可以识别出来是否跨站请求伪造