【问题标题】:User Agent Node JS用户代理节点 JS
【发布时间】:2020-03-19 00:31:58
【问题描述】:

我正在尝试重定向所有进入我的节点 js 服务器的请求,并在重定向之前将它们的引用设置为 null。

是否可以设置所有传入的请求用户代理在重定向之前参考NULL?

req.query.refer = NULL?

【问题讨论】:

  • 你是在重定向客户端还是服务器端?
  • 服务器端重定向
  • 你用的是 express js 吗?
  • 是的,使用快递。

标签: node.js referrer-policy


【解决方案1】:

如果您使用 express,则添加一个中间件函数,该函数为每个传入请求执行,如下所示。

    app.use(express.json());
    app.use(express.urlencoded({ extended: false }));
    app.use(cookieParser()); 


    //This is where you set the middlewear to set referer to null.

    app.use(setRefererToNull); 
    function setRefererToNull(req, res, next) {
        req.headers.referer = null;
        next();
    }
    // End of middlewear 

    app.use('/', indexRouter);
    app.use('/users', usersRouter);

请注意,在您的 app.js 文件中设置任何其他路由之前,需要设置此中间件功能“setRefererToNull

【讨论】:

    【解决方案2】:

    您必须将 Referrer-Policy 标头设置为 no-referrer。这会告诉浏览器完全忽略 Referer 标头。

    你在 express 中使用

    res.set("Referrer-Policy", "no-referrer");
    

    有关 Referrer-Policy 标头here的更多信息

    【讨论】:

      【解决方案3】:

      如果你使用的是快递,那么

      这是设置标题的方法:

      res.set({ “用户代理”:空 }) 或

      res.header('User-Agent', null) 然后调用

      res.redirect('http://localhost:3000/some url'); 最后,这样的事情应该可以工作:

      router.get('/ren', function(req, res) {
      
      
          res.header('User-Agent', null);
      
          res.redirect('http://localhost:3000/some url');
      });
      

      【讨论】:

      • 这并没有从请求中删除引用。它没有像我希望的那样将其设置为 null
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 2023-02-21
      相关资源
      最近更新 更多