2017-03-13 83 views
0

域地址我有一个节点JS应用阻止用户通过在节点JS

version - v0.10.35. 
Framework - hapi.js framework 
Uses bower to manage front-end libraries 

这有一个公共集的URL的访问,每个特定的客户。当一个URL被访问时,它将检查数据库并提供相关的输出。

在我的情况下,有一个前客户,我不断收到他的具体网址的请求。我有发送请求的域名地址,它看起来像“www.ExampleForExCustomer.com”。有没有办法在Node js中用这个地址阻止用户?

用户在尝试访问,因为他不再是一个客户,但DB检查为客户完成后,这种情况发生时,我试图避免进程

会得到一个错误信息由于某些复杂的原因,我无法通过网络级别的IP地址阻止用户。

我是很新的节点JS,所以如果有人有任何洞察到这一问题

+0

是否使用像快递库,或者只是原始节点HTTP? –

+0

@joe:该应用程序建立在hapi.js框架的顶部 – Visahan

回答

0

的解决方案我有版v0.10.35的节点JS应用,将是很有益的

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

已经有人说过,你问题的答案将取决于你使用的框架。您可能正在使用Express,Connect,Hapi,Restify,Loopback,Koa,http,net或其他数百个模块 - 所有这些模块都将采用不同的方式来阻止请求。

你甚至没有包含任何代码,所以我不能发布任何特定的解决方案。我可以给你一个正确的方向提示Express,这是最流行的框架,所以你最有可能使用它 - 但正如我所说你提供的细节太少。

当您使用Express时,您应该创建一个中间件,以便在任何数据库连接发生之前在流程的早期检查请求。您将可以访问具有许多可检查的有用属性的对象request。当你想阻止用户,那么你应该运行next()回调与一个错误。为了使连接成功,您应该运行next()回调而不出现错误,以便可以由其他中间件和请求处理程序处理。

请参见本文的详细信息:

+0

感谢您的信息,我更新了一些信息。我目前正在管理这个由我的前任编写的项目。我正在更新它,但目前我有这些问题需要完成才能查看更新。 – Visahan

0

正如@rsp已经说过。你正在使用一个非常旧的版本的节点...

使用hapi.js(或其他框架),你不能轻易确定请求者的网址。你可以做什么,就是确定ip的请求是从哪里来的。

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

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