Node.js 按节点JS中的域地址阻止用户

Node.js 按节点JS中的域地址阻止用户,node.js,Node.js,我有一个NodeJS应用程序 version - v0.10.35. Framework - hapi.js framework Uses bower to manage front-end libraries 这有一组公开的url要访问,每个url都是针对某个客户的。当访问url时,它将与数据库进行检查并给出相关输出 在我的例子中,有一位前客户,我不断地从他那个里得到关于他特定url的请求。我有发送请求的域地址,看起来像“www.exampleforxcustomer.com”。有没有办法

我有一个NodeJS应用程序

version -  v0.10.35.
Framework - hapi.js framework
Uses bower to manage front-end libraries
这有一组公开的url要访问,每个url都是针对某个客户的。当访问url时,它将与数据库进行检查并给出相关输出

在我的例子中,有一位前客户,我不断地从他那个里得到关于他特定url的请求。我有发送请求的域地址,看起来像“www.exampleforxcustomer.com”。有没有办法在Node js中阻止使用此地址的用户

当用户尝试访问时,将收到一条错误消息,因为他不再是客户,但这发生在对客户进行数据库检查之后,我正试图避免该过程

由于一些复杂的原因,我无法在网络级别上通过IP地址阻止用户

我是NodeJS的新手,因此如果有人对这个问题的解决方案有任何见解,这将非常有帮助

我有一个版本为v0.10.35的NodeJS应用程序

该版本的维护期于2016年结束。有节点v0.12、io.js v1.0、io.js v2.0、io.js v3.0、节点v4.0、节点v5.0、节点v6.0、节点v7.0,稍后我们将发布节点v8.0。你是8个主要版本落后于当前版本,所以不要指望它的工作在所有

话虽如此,您的问题的答案将取决于您使用的框架。您可能使用Express、Connect、HAPI、RealStect、回环、膝关节炎、HTTP、NET或数百个其他模块-所有这些都将有不同的方式来阻止请求。 您甚至没有包含一个类似的代码,因此我无法发布任何特定的解决方案。我可以给你一个关于Express的正确方向的提示,Express是最流行的框架,所以你很可能会使用它——但是正如我所说,你提供的细节太少了

当您使用Express时,您应该创建一个中间件,在任何数据库连接发生之前,在过程的早期检查请求。您将可以访问
请求
对象,该对象具有许多有用的属性,您可以检查这些属性。如果要阻止用户,则应运行带有错误的
next()
callback。要关闭连接,您应该无错误地运行
next()
回调,以便其他中间件和请求处理程序可以处理它

有关更多信息,请参阅本文:


    • 正如@rsp所说。您正在使用非常旧版本的node

      使用hapi.js(或其他框架),您无法轻松确定请求者的url。您可以做的是确定请求来自的
      ip

      var ip = request.headers['x-forwarded-for'] || request.info.remoteAddress;
      

      这可能会帮助您阻止特定的请求地址…

      您是使用Express之类的库,还是仅使用原始节点HTTP?@joe:该应用程序构建在hapi.js框架之上谢谢您提供的信息,我更新了一些详细信息。我目前正在管理这个由我的前任写的项目。我期待着更新它,但目前我有这些问题要完成之前,我可以研究更新。