Sto sviluppando un'applicazione web che esporrà un'API pubblica al mondo, ma archivierà dati personali e personali molto sensibili. Avere il contenuto compromesso sarebbe fatale.
Userò le seguenti tecnologie:
- REST (su HTTPS)
- Server Apache sul back-end
- Database PostgreSQL
Mi è venuta un'idea (l'ho pensata anch'io, quindi potrebbe avere vulnerabilità che gli esperti di sicurezza qui possono individuare).
I componenti del mio ambiente sicuro sono i seguenti:
-
Macchina A: server frontale (pubblico) su una macchina dedicata (io). Questa macchina ha regole firewall per consentire solo connessioni TCP tramite la porta 443 (HTTPS) (Ii). La configurazione di Apache accetta solo determinati schemi di espressioni regolari dell'API pubblicata (Iii). Apache inoltra la richiesta al server B, utilizzando una mappatura API interna e utilizzando una porta segreta non standard
-
Macchina B: (io). Questa macchina è stata configurata per accettare solo i dati dalla macchina A (Ii). È qui che esistono la logica e i dati dell'applicazione (Iii). Risultati rimandati alla Macchina A, per rispedire al richiedente.
Qualcuno può migliorare questa configurazione (ad esempio "indurire" o renderla più sicura)?