Sto provando a progettare l'architettura di un'app che verrà eseguita su un AMI Linux AWS, all'interno di un contenitore Docker.
L'app si occuperà di dati finanziari sensibili, quindi sicurezza è priorità assoluta . Si prevede che l'app gestisca un carico molto intenso, con decine di migliaia di richieste inviate al secondo.
Se c'è un significativo aumento della sicurezza, la sicurezza ha priorità sulla velocità . La logica è semplice: se ho una grave violazione e ho perso la fiducia dei miei clienti / investitori, un extra di 500 ms in termini di tempo di caricamento non mi aiuterà.
Ho già consultato un esperto di sicurezza presso una nota azienda di San Francisco e ho consigliato di utilizzare Jetty .
Hanno avvertito che mentre ci sarebbe stato un calo delle prestazioni da Apache Tomcat , i guadagni in termini di sicurezza erano così significativi che ne valeva la pena. Hanno anche raccomandato Jetty su Nginx . Hanno detto che Apache e Nginx erano scritti in C e, come tali, contenevano più vulnerabilità di sicurezza di un server scritto in un linguaggio interpretato come Java.
Mi hanno anche consigliato di non usare un server web in linguaggi come Python e Ruby, citando potenziali difetti di sicurezza.
Poi ho appreso che Google App Engine è passato da Apache Tomcat a Jetty per il loro server web / servlet container e questo ha rafforzato l'argomento. Articolo InfoQ - Perché Google ha scelto il molo
Quindi, mentre sembravano esserci molti argomenti validi per il Jetty (suggerimento dell'esperto di sicurezza, scelta di Google), volevo aprire questa discussione fino alla InfoSec su Stack Exchange.
Secondo te, quale dei seguenti è il più sicuro, se ignoriamo per un minuto il codice dell'app che è stato scritto sopra di esso?
- Jetty
- Apache Tomcat
- Nginx
- Server Web basato su Python / Ruby
- Node.js Web Server
- altri che non ho menzionato