Comment se protéger contre distribuées de déni de service attaques Node.js avec la Prise.io?

J'ai été en apprentissage node.js et de la prise.io dernièrement. Ma question est comment puis-je protéger le serveur contre les attaques côté client?

C'est mon code serveur

io.sockets.on('connection', function (socket) { 
//users.push(socket);       
socket.on('message', function (data) {      

    socket.on('disconnect', function () { });           

    socket.on('bcast', function (data) {        
        socket.emit('news', { 'data': data });
        socket.broadcast.emit('news', { 'data': data });     
    });

    socket.on('login', function(data){
      socket.emit('login', {'data': [ socket.id, data ] });
    });
   });
 });

Par exemple, si un client utilise des outils de développement chrome pour faire le courant du code

 for(var i = 0; i<99999999999; i++)
 {
        socket.emit('bcast', {data: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'});
 }

sa va tuer le serveur.

  • Si vraiment tue votre serveur, vous devriez probablement implent une sorte de limitation fondée sur les clients.
  • Nœud 0.10.20 a connu des problèmes de DoS, si vous l'utilisez (ou ci-dessous, je pense).
  • Pourquoi ne pas vous exposer le nœud de douilles d'extrémité à l'aide d'un DoS de sauvegarde/limitation de service? Je suis sûr que cloudflare ou similaire fournisseur aura une très bonne protection contre les attaques DoS plutôt qu'essayez-vous de faire vos propres.
  • Très bonne question, pas de bonnes réponses!
  • Peut-être que vous prenez le problème à l'extrême. Exposer ou de mésusage jetés comme ça, c'est mauvais. Si vous utilisez de diffusion trop de votre serveur va cesser de fonctionner avant même que les utilisateurs feront DDOS. Pourquoi ne pas vous testez votre scénario par le traitement de la diffusion différemment que d'émettre. Essayez de chambres par exemple. Utiliser la diffusion de seulement lorsque cela est nécessaire.
InformationsquelleAutor Virushan | 2013-12-06