Una regola in particolare nello sviluppo del software è la più semplice è la migliore . Ogni volta che aggiungi un sistema (sistema operativo, libreria, framework) complesso, ti devi interrogare sul suo livello di sicurezza con 2 diversi punti di vista:
- il design presenta problemi di sicurezza? (in genere, come vengono ospitati e consultati i dati, come vengono elaborati l'autenticazione e l'autorizzazione, qual è la complessità della configurazione)
- qual è il rischio che il sistema contenga difetti di implementazione?
Questa seconda domanda è spesso difficile da rispondere e spesso non è molto più di una scommessa, ma è importante. Per quanto mi riguarda, cerco di sapere qual è la reputazione, e guarda l'elenco dei bug per i sistemi open source. Le sue dimensioni, il tipo di bug e il tempo di risoluzione programmano un po 'di luce sul rischio di difetti di sicurezza. Quanto segue non è altro che la mia opinione:
- Ubuntu è un sistema operativo serio, basato su Debian Linux e ha una buona reputazione. La sua configurazione per ottenere un livello di sicurezza standard del server richiede un po 'di lavoro (è di default un sistema workstation) ma non è molto più difficile di Windows
- Mono è un framework che porta l'API NET al mondo non Microsoft. Non sono un esperto ma temerei che i suoi sviluppatori si preoccupassero più delle funzionalità che della sicurezza. Dovresti esaminare l'elenco dei bug corrente per esprimere la tua opinione. IMHO questo è il punto chiave per la tua domanda.
Ma l'utilizzo di una piattaforma sottostante corretta non è abbastanza per creare un'applicazione web sicura. Molti problemi possono venire (e spesso accadono) dal modo in cui l'applicazione stessa è progettata e implementata. E comunque, Devo assicurarmelo in realtà dimostra che sei preoccupato per la sicurezza che è un buon punto di partenza, ma le best practice consigliano di fare una vera analisi di sicurezza:
- quali sono le minacce
- quali sono i punti deboli attuali
- quali sono i requisiti di sicurezza
Solo gli esperti di queste domande ti consentiranno di proteggere l'applicazione in base ai suoi requisiti.