[ASP.NET 2.0] Protezione del codice sorgente VB e C#
Pubblicato da Mario De Ghetto su 6 Febbraio 2008
Con la pubblicazione di un’applicazione web ci si pone il problema di proteggere il codice sorgente dell’applicazione stessa, dato che l’applicazione è interamente accessibile all’amministratore del sito Internet.
Infatti, per un’applicazione commerciale non è auspicabile che chi ha accesso alle cartelle dell’applicazione possa in qualche modo modificare l’applicazione (soprattutto nella parte relativa al sorgente, più che nella parte relativa alla presentazione delle pagine) o, peggio, utilizzare direttamente il codice sorgente per costruire un’applicazione commerciale analoga.
Con Visual Studio 2005 e ASP.NET 2.0 questo obiettivo è facilmente raggiungibile, come evidenziato dalle seguenti istruzioni:
-
dal menu “Genera” scegliere la voce “Pubblica sito web”; comparirà una maschera per la scelta della destinazione di pubblicazione e di altre informazioni;
-
è possibile pubblicare il sito in una cartella locale (ad esempio per test, prima della pubblicazione definitiva), semplicemente cambiando il percorso di destinazione. Si consiglia di creare una cartella vuota appositamente per lo scopo di depositare i file destinati alla pubblicazione;
-
in alternativa è possibile fare click sul pulsante “…” e scegliere se pubblicare in una cartella locale (scegliendo la cartella stessa), su IIS locale, in FTP o su un sito remoto (richiede le estensioni del server di FrontPage);
-
dopo aver inserito le informazioni sulla destinazione, attivare la casella relativa a “Attiva nome sicuro su assembly precompilati”, poi selezionare “Utilizza un contenitore di chiavi” e inserire un nome a scelta (es. “chiavi”), poi confermare con OK.
Nella finestra di output verranno visualizzate le varie fasi di pubblicazione. Nel caso in cui i file siano già presenti nella cartella di destinazione, comparirà una richiesta di conferma di eliminazione dei file già presenti.
Verificando i risultati, si troverà che tutti i file con estensione “.vb” (destinati a mantenere “in chiaro” il codice sorgente in Visual Basic delle pagine) sono spariti, così come è sparita la cartella App_Code, preposta a contenere tutte le classi generali (analoghe ai moduli globali di VB6).
Al loro posto è comparsa invece una cartella “bin” contenente le DLL che sono il risultato della compilazione dei file di codice sorgente di Visual Basic di tutte le pagine del sito.
Ovviamente non è possibile compilare le pagine “.aspx” il cui sorgente, costituito da tag HTML, rimane visibile.
Certamente, però, la compilazione del codice VB permette di nascondere all’utente e all’amministratore del sito tutte quelle funzionalità più importanti che caratterizzano il comportamento dell’applicazione web.
Oltre alle tecniche finora spiegate, native di Visual Studio, mi è stato segnalato da Antonio Catucci (aka “tdj”) un suo post relativo a un add-in per Visual Studio, scaricabile gratuitamente: Visual Studio 2005 Web Deployment Project. Per approfondimenti, inoltre, è possibile consultare l’articolo MSDN “Using Web Deployment Projects with Visual Studio 2005“.
Pubblicato su ASP.NET, Sicurezza | Contrassegnato da tag: ASP.NET 2.0, Protezione codice, Sicurezza | 2 Commenti »