在API post调用中删除csrf protecteion

 M-When 发布于 2023-01-19 08:15

我想从我的Express 3.0应用程序中删除csrf,因为我不需要它.我使用oauth验证客户端.使用express.csrf()时,是否将中间件列入白名单API网址?

1 个回答
  • 你可以用两种方式做到这一点.

    1.)创建一个自己的小中间件,允许白名单网址模式不被csrf阻止;

    var express = require("express");
    var expressCsrf = express.csrf();
    var app = express.createServer();
    
    var customCsrf = function (req, res, next) {
        // I assume exact match, but you can use regex match here
      var csrfEnabled = true;
      var whiteList = new Array("/pattern1/param1","/pattern2/param2","/pattern3/param3");
      if (whiteList.indexOf(req.path) != -1) {
        csrfEnabled = false;
      }
    
      if (csrfEnabled) {
        expressCsrf(req, res, next);
      } else {
        next();
      }
    }
    
    app.use(customCsrf);
    app.listen(3000);
    

    2.)在要启用的控制器上使用csrf中间件.例如,您要在配置文件保存控制器上使用csrf检查;

    app.post("/profile/save", express.csrf(), function(req, res, next) {
        // put your code here
    });
    

    2023-01-19 08:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有