Il Web del 21 ° secolo è irto di pericoli poiché i criminali informatici tentano di accedere a siti Web privati e rubare informazioni. Se si dispone di un sito Web aziendale che viene eseguito utilizzando ASP.NET o qualsiasi altra tecnologia Web, il server che ospita il sito è vulnerabile a tali attacchi. Microsoft ASP.NET, l’ultima versione di ASP, dispone di diverse classi e servizi di sicurezza che puoi utilizzare per proteggere il tuo sito e le sue risorse. Potresti non aver mai utilizzato alcuni di questi strumenti, ma vengono forniti con Microsoft Visual Studio insieme alla documentazione che può aiutarti a imparare come usarli con successo.
1
Utilizzare il servizio di appartenenza di ASP.NET per convalidare gli utenti. Immagina il danno che potrebbe verificarsi se qualcuno potesse fingere di essere te e accedere al tuo conto bancario online. I siti Web protetti fanno molto di più che verificare semplicemente un nome utente e una password prima di concedere l’accesso a qualcuno. L’autenticazione si riferisce al processo di verifica dell’identità di un utente controllandone l’ID utente e la password. L’autorizzazione determina le risorse a cui un utente può accedere.
2
Utilizzare le stored procedure per convalidare l’input dell’utente. Quando qualcuno ottiene l’accesso ai dati privati di un’azienda, possono verificarsi conseguenze devastanti. Gli aggressori possono ottenere l’accesso in vari modi. Ad esempio, se il sito Web ASP.NET accetta l’input dell’utente tramite i moduli, è possibile che le persone digitino comandi SQL in tali moduli; alcuni comandi possono eseguire operazioni non autorizzate sul database. Gli analisti della sicurezza chiamano questa tecnica SQL injection. Non creare stringhe di query del database che contengono password utilizzando i dati che le persone immettono nei moduli. Microsoft consiglia di utilizzare le stored procedure per elaborare i dati. Invece di passare l’input utente non filtrato a una stored procedure, archiviare il testo immesso dagli utenti nei parametri e passarlo a una stored procedure.
3
Usa Web.config per archiviare informazioni riservate. Considera cosa accadrebbe se una persona non autorizzata venisse a conoscenza della password del tuo database protetto. La maggior parte dei siti Web aggiunge la protezione tramite password ai propri database. Quando viene eseguita un’applicazione Web ASP.NET, fornisce la password corretta e consente alla pagina Web di un utente di comunicare con il database. Microsoft consiglia di archiviare le password e le stringhe di connessione al database nel file Web.config dell’applicazione. ASP.NET può anche crittografare la stringa di connessione e decrittografarla automaticamente per aggiungere un altro livello di sicurezza all’applicazione.
4
Convalida l’input dell’utente e l’output dell’applicazione. I siti ASP.NET sono vulnerabili a un attacco pericoloso chiamato Cross-Site Scripting. XSS si verifica quando un criminale informatico inietta codice JavaScript nella tua applicazione. Se i moduli Web non convalidano l’input dell’utente e codificano l’output, il sito potrebbe essere a rischio. Come nota Microsoft, dovresti “presumere che tutto l’input sia dannoso”. Limita l’input dell’utente convalidando i valori immessi dagli utenti tramite i controlli di convalida ASP.NET.
5
Utilizzare la classe Regex di ASP.NET per verificare che i valori immessi dagli utenti nei moduli siano i valori previsti dall’applicazione. Usa il metodo HttuUtility.HtmlEncode di ASP.NET per codificare i dati che la tua applicazione restituisce. Ad esempio, se qualcuno digita un segno “<” in una casella di testo, questo metodo lo converte in “<” Ciò assicura che i valori che qualcuno inserisce in un modulo non possano causare l’esecuzione del codice quando le applicazioni elaborano quei valori.