Uno dei principali problemi che ci troviamo ad affrontare durante lo sviluppo di nuovi progetti, è legato alla consultazione non autorizzata o alla manomissione dei dati.
La visualizzazione dei dati dei essere gestista con una profilazione basata sull’accesso tramite user e password. Ogni utente avrà un ruolo che gli consetirà di svolgere solo alcune operazioni, fino ad arrivare al livello di amministratore con il massimo dei privilegi.
Tuttavia se questo sistema è mal gestito può portare a conseguenze disastrose, è il caso delle SQL Injection.
Come si evince dal nome, si basano su iniezioni di codice SQL nelle query che l’applicazione utilizza nel dialogo con il database.
Queste iniezioni alterano il comportamento delle istruzioni, consentendo al malintenzionato di modificare, cancellare o comunque alterare l’integrità dei dati, fino all’ipotesi più grave di prendere pieno possesso dell’applicazione.
Oltre a scrivere codice sicuro è di fondamentale importanza associare le seguenti attività:
– Validazione dell’input : l’input dell’utente, prima di essere sottomesso a SQL server deve essere validato al fine di rifiutare ogni carattere pericoloso. Per evitare che tale validazione sia facimente elusa, è necessario eseguirla sempre lato server.
– Controllo dei messaggi di log di IIS : i messaggi di errore che il server web e l’applicazione rilasciano non devono dare spiegazioni puntuali su quello che è successo, ma devono essere piuttosto generici
–Abbassare i privilegi di SQL Server : E’ necessario ridurre i privilegi associati all’account con cui si esegue la connessione a SQL Server al minimo indispensabile.Evitare anche glia ccount senza password.
– Mantenere aggiornati i sistemi con le ultime patch : Molte vunerabilità non sono così evidenti e per essere sempre aggiornati è bene essere reattivi alle ultime scoperte e installare gli utili aggiorname