nodejs – 阻止php脚本利用尝试

我有很多的PHP漏洞文件的请求,并希望“处理”他们。

GET //phpMyAdmin/scripts/setup.php 200 42.452 ms - 3703 GET //phpmyadmin/scripts/setup.php 200 43.431 ms - 3703 GET //pma/scripts/setup.php 200 47.159 ms - 3703 GET //myadmin/scripts/setup.php 200 44.524 ms - 3703 GET //MyAdmin/scripts/setup.php 200 63.237 ms - 3703 GET //scripts/setup.php 200 75.063 ms - 3703 GET //admin/scripts/setup.php 200 43.158 ms - 3703 GET //db/scripts/setup.php 200 55.091 ms - 3703 GET //myadmin/scripts/setup.php 200 39.229 ms - 3703 GET //mysql/scripts/setup.php 200 38.401 ms - 3703 GET //mysqladmin/scripts/setup.php 200 41.768 ms - 3703 GET //phpadmin/scripts/setup.php 200 46.766 ms - 3703 GET //pma/scripts/setup.php 200 40.464 ms - 3703 GET //web/scripts/setup.php 200 42.858 ms - 3703 GET //blog/phpmyadmin/scripts/setup.php 200 45.144 ms - 3703 

所以我想closures这样的请求连接,以便请求者认为服务器不存在,不会再尝试:

  app.use(function(req, res, next){ if(req.originalUrl.indexOf('.php') !== -1) res.set("Connection", "close"); else next(); }) 

这是处理这个问题的最好方法吗?

更好的是返回一个404。它更可能是机器人不会继续尝试。

 app.use(function(req, res, next){ if(req.originalUrl.indexOf('.php') !== -1) { res.status(404).send('Not found'); } else { next(); } }) 

如果您看到相同的IP地址一遍又一遍地击中了您,并且假设您在Linux计算机上,则可以考虑手动将IP添加到/etc/hosts.deny,这会在到达节点服务器之前阻止它们。

Interesting Posts