Una connessione al database consentirà all'utente di fare praticamente tutto ciò che gli piace sul database, a condizione che abbia i diritti di accesso. Aprire una connessione direttamente a Internet e l'unica cosa che consente a qualsiasi utente di accedere all'account dell'amministratore è la segretezza della password dell'account amministratore. Per la maggior parte, non vedrai un sistema di database costruito con questo tipo di accesso in mente, quindi non vedrai protezioni sul database stesso create per questo utilizzo.
Dato l'accesso amministrativo e la connettività, un hacker può:
- elimina completamente il database
- riscrivi lo schema del database
- ridimensiona il database, consumando più risorse della macchina di quelle che intendi
- cambia i dati nel database
Quindi ... la domanda di risposta è: qual è lo scopo del database e quanto conta l'integrità? Se si tratta di un database di test per un progetto di uno studente, potrebbe interessarsi di più alla macchina stessa rispetto al database. Ma nella maggior parte delle applicazioni, le informazioni nel database e la sua validità, disponibilità e affidabilità sono il cuore del sistema. Perdere questo, o perdere la fiducia in esso e in molti casi, non hai più un business funzionante.
Parlare come uno sviluppatore web, tuttavia - il più grande driver per avere un'app Web non è ancora la sicurezza: è la funzionalità. Le persone non tendono a pensare in SQL, quindi è necessaria un'interfaccia che consenta a un utente meno tecnico di visualizzare e manipolare i dati in un modo che l'utente possa comprendere. Una volta ammesso, anche in un caso, che è necessario un server Web o un app server per il rendering dei dati in una pagina leggibile dall'utente, è stato eliminato il costo maggiore per la gestione del server delle applicazioni. E una volta investito tempo ed energie nello sviluppo di moduli o altri meccanismi di input dei dati che l'utente medio può utilizzare, hai investito abbastanza nel sito nel suo complesso, che farlo correttamente - con solide pratiche di sicurezza è un saggio investimento non solo per proteggere i dati, ma per proteggere il valore dell'investimento nella creazione dell'applicazione.