Sono in procinto di scrivere un server di chat web altamente scalabile basato su browser utilizzando nodejs. Il concetto in questione è semplice: prima controlla il browser per il supporto websocket. Se non supportato o altrimenti non è compatibile con le specifiche del server, si limita semplicemente a eseguire il downgrade con garbo al tradizionale polling lungo.server nodejs contro gli attacchi DOS
Approfittando della sua altamente evented modello di I/O, non ho potuto trovare qualsiasi altro quadro là fuori finora tutto bene e in forma come nodejs per questo tipo di lavoro. Tuttavia, ho un problema relativo agli attacchi DOS per i quali ho deciso di trovare una soluzione semplice. Tuttavia, non sono così sicuro se sarebbe il modo più ideale per combattere contro quei massicci attacchi di inondazioni.
quello che ho intenzione fare è - se 50 richieste o approfondimenti, provenienti da un unico indirizzo IP, colpisce i server all'interno di un determinato periodo di tempo (diciamo 1 secondo), poi negare ogni ulteriore richiesta di tale IP fino a quella specifica l'intervallo di tempo si interrompe e così via.
Sta andando tutto bene?
+1 - Forse non ho guardato ma nessuno sembra aver toccato molto il problema degli attacchi Node DoS. – Bojangles
Una cosa che ho scoperto è molto utile è utilizzare la funzione setTimeout per ridurre i timeout su tutte le connessioni in entrata e in uscita. Il valore predefinito è due minuti. Se qualcosa va storto, sono due minuti che devi mantenere le risorse di connessione quando devi semplicemente buttarle via. 10-20 secondi funziona molto meglio. – download