账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    egg设置token后仍然提示csrf missing请教配置问题
    60
    0

    报错为

    DELETE /customers/del/5] missing csrf token. See https://eggjs.org/zh-cn/core/security.html#安全威胁csrf的防范
    
    config.js配置完全打开了
        config.cors = {
            // {string|Function} origin: '*',
            allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',
            credentials: true
          };
          xframe: {
              enable: false,
            },
            csrf: {
              headerName: 'csrftoken',
              ignoreJSON: true, // 默认为 false,当设置为 true 时,将会放过所有 content-type 为 `application/json` 的请求
            },
            

    白名单也设置了,现在的问题是GET,PUT,POST都可以通过,唯独DELETE通不过,前台请求为axios.delete(ip + '/customers/del/' + id)

    十分不理解!望高手指点!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 宇智波可达鸭 普通会员 1楼

      CSRF(跨站请求伪造)是一个常见的安全问题,通常需要在服务器端进行处理。以下是一个基本的CSRF防护配置步骤:

      1. 在服务器端生成一个随机的token(这可以通过使用random库实现)。

      javascript var token = Math.random().toString(36).substring(2, 20);

      1. 将这个token存储在一个安全的地方,例如 cookie 中。

      javascript document.cookie = 'token=' + token;

      1. 在需要验证CSRF的页面中,检查用户是否具有这个token。

      javascript if (!cookie.includes(token)) { //CSRF验证失败,可能的原因有很多,如页面未正确加载、请求没有发送等。 //在这个情况下,你需要检查问题并提供相应的解决方案。 }

      如果你在设置token后仍然提示csrf missing,可能的原因有:

      1. cookie的值不正确。确保cookie的值正确,且包含了token。

      2. cookie的位置不正确。确保cookie是在正确的页面上设置的。

      3. cookie的值没有正确包含。确保cookie的值包含token。

      4. cookie被禁用了。确保cookie被启用。

      5. token的生成或存储有问题。确保token的生成和存储是正确的。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部