Mitigação de ataques HTTP longe do Express

0

Estou exibindo alguns arquivos estáticos usando Express e Node.JS, o que posso fazer para proteger contra inundações HTTP, como ataques POST e GET?

    
por Jordan Doyle 08.06.2014 / 18:33

1 resposta

2

Todas as solicitações são pré-selecionadas com app.use e injetadas em uma função de middleware. Isso é usado antes do pedido ser seguido para express.static ou app.rest (o objeto req) e mais uma vez antes de responder ao cliente (o objeto res). Você pode alterar req, res e opcionalmente usar a função de retorno de chamada (aqui chamado próximo ). Aqui está o truque. Se sua função de middleware nunca chamar o retorno de chamada next () , a solicitação não será atendida. Você pode usar um middleware, que conta os pedidos por ip por vez, e atende ou não a página. Pense que a lista de ip bloqueados aumentará e diminuirá o seu aplicativo. Middlewares precisam ser sincronizados para interceptar. Aqui está um exemplo de seu código necessário, com base no exemplo de API expressa do Google:

var express = require('express'),
app = express(),
util= require(util);
app.use(express.static(__dirname + '/public'));

// a first middleware, a logger in console, just to show ip
// usefull to debug
app.use(function(req, res, next){
  console.log('%s %s from %s , proxy: %s', req.method, req.url, req.ip, util.inspect(req.ips));
  next();
});

// a second middleware, what u need
app.use(filterUrReq);

app.get("blah", function(req, res) {
    res.send(req.url + " well served to " + req.ip)
});

app.listen(8080);

// here the middleware function, it filters by ip, if ip is clean, call next callback.
function filterUrReq (req, res, next) {

    if (req.ip == "15.89.111.111") {
        console.log('i dont want to serve this IP, dont call next');
    } else {
        console.log('ok clean ip, go to next app.use');
        next();
    }

}

aqui as boas práticas para expressJS. link . Talvez sua pergunta esteja em stackoverflow ou talvez você precise de algo mais global, como fail2ban , dê uma olhada prisões problemáticas.

    
por 03.07.2014 / 14:25

Tags