Risponderò alla tua domanda con una raffica di altre domande.
La tua app ha effettivamente bisogno di andare su internet aperto? o può semplicemente esistere su una intranet aziendale?
La maggior parte degli "exploit java" sono semplicemente dei modi in cui la sandbox di java può essere scomposta e di piccole conseguenze per le applicazioni java legittime poiché è davvero un confronto tra mele e arance.
La maggior parte degli "exploit del browser" sono simili (ottenendo l'accesso ad un sistema o ad altri dati nel browser, uscendo dalla sandbox dei browser). In questo però Chrome aiuta un po '.
Detto questo, la maggior parte degli exploit del "server web" sono basati sulla possibilità di eseguire il proprio codice o estrarre dati che non si suppone.
Se hai un'app java che comunica direttamente con un back end C tramite socket, quanto è bloccata la tua app C? Il potenziale di danno può essere piuttosto elevato (dal momento che, a seconda del software, si ha il potenziale per gli exploit della catena rop o addirittura l'esecuzione diretta del codice, oltre a rendere disponibile l'intera memoria dei processi.)
Ciò richiederebbe un aggressore più sofisticato.
D'altro canto, se si dispone di un server Web COT, si corre il rischio che un utente malintenzionato meno esperto sia in grado di eseguire i propri sistemi.
E tutte le riscritture sono destinate a fare gli stessi errori fatti dal codice originale (anche se il programmatore originale è ancora in circolazione.)
Personalmente starei lontano da node.js semplicemente perché è una tecnologia così immatura rispetto ad altre opzioni.
Qual è il costo potenziale del compromesso?
Qual è il potenziale risultato del compromesso?
Chi avrebbe un interesse acquisito nel compromesso sul sistema?
È il furto di dati o la manipolazione dei dati che farà maggiormente male?