Node.js 不向人们正在测试我的node/express站点的URL发送响应可以吗?

Node.js 不向人们正在测试我的node/express站点的URL发送响应可以吗?,node.js,express,security,server,http-status-code-404,Node.js,Express,Security,Server,Http Status Code 404,我把所有404都记录在我的网站上。我一直在为我没有链接到的页面获取它们,很明显,这是一个机器人试图在我的网站上找到管理员页面/安全文件,比如/wp-admin.php 我尝试了这个,但它似乎并没有阻塞服务器,它只是在一分钟后输出如下内容: GET /wp-admin.php - - ms - - 添加这样的路由是否有任何不利之处?如果不发送响应,可能会浪费它们的时间 router.get('/wp-admin.php', function(req, res, next) {}); 这将导致e

我把所有404都记录在我的网站上。我一直在为我没有链接到的页面获取它们,很明显,这是一个机器人试图在我的网站上找到管理员页面/安全文件,比如/wp-admin.php

我尝试了这个,但它似乎并没有阻塞服务器,它只是在一分钟后输出如下内容:

GET /wp-admin.php - - ms - -
添加这样的路由是否有任何不利之处?如果不发送响应,可能会浪费它们的时间

router.get('/wp-admin.php', function(req, res, next) {});
这将导致express超时并关闭连接。这将使黑客更容易进行拒绝服务攻击,并阻塞节点服务器。 您可以始终使用某种速率限制器来阻止来自某个IP的连续请求


是一个可以用来做这个的。这是一个简单的快速中间件

,正如已经被接受的答案所指出的,这样的快速路线会让你容易受到攻击

我建议更进一步,使用

不过,我不确定这里包含Express的含义。例如,您所展示的请求处理程序上游的中间件是否会自动读取请求正文?如果是这样,那就是一个攻击向量,它使我的建议毫无用处。 无论如何,为了演示我对普通HTTP服务器的建议:

var h=require'http' h、 createServerfunctionreq,res{ //发出请求事件后,立即断开套接字 要求销毁 }.listen888,函数{ //向我们刚刚创建的服务器发送请求 var r=h.request{port:8888} r、 在'response'上,console.log.bindconsole'on_response' r、 关于'error',console.log.bindconsole',关于'u error' r、 on'timeout',console.log.bindconsole',on_timeout' //中止将被发送到调用方,但不发送其他内容 r、 在'abort'上,console.log.bindconsole'on_abort' r、 结束 } 如果您能够将调用代理识别为bot或其他方式,那么还可以在HTTP服务器的连接事件中调用

var h=require'http' h、 createServerfunctionreq,res{ res.send'foo' }.on'connection',functionsocket{ //例如,假设此ip地址是攻击者的远程地址 如果socket.remoteAddress==='10.0.0.0'{ 毁灭 } }.listen888,函数{ //向我们刚刚创建的服务器发送请求 var r=h.request{port:8888} r、 在'response'上,console.log.bindconsole'on_response' r、 关于'error',console.log.bindconsole',关于'u error' r、 on'timeout',console.log.bindconsole',on_timeout' //中止将被发送到调用方,但不发送其他内容 r、 在'abort'上,console.log.bindconsole'on_abort' r、 结束 }
谢谢,这就是我想知道的。听起来速率限制器只会为请求发送失败消息,所以我只会为坏URL发送失败消息,因为我知道这些是他们将要请求的URL。
router.get('/wp-admin.php', function(req, res, next) {});