showFile: il motore Sar-At per la distribuzione di documenti riservati

Abbiamo visto nel primo capitolo di questo volume come sia possibile con Sar-At creare sezioni del sito (o pagine individuali) accessibili soltanto ai visitatori registrati (ulteriori dettagli si trovano del manuale "Governare il sito").

Abbiamo anche visto come Sar-At ci permetta di registrare nel suo database non soltanto testi e numeri, ma interi documenti (i campi di tipo "file", visti nell'omonimo paragrafo della prima parte).

È lecito chiedersi come sia possibile combinare le due funzionalità. Cioè, come sia possibile rendere un file accessibile soltanto agli utenti registrati.

Per esempio, potremmo decidere di distribuire libri in formato elettronico (PDF) solo agli abbonati del sito, oppure fogli elettronici Excel, il cui contenuto va visto soltanto dai nostri rivenditori, o magari un software di nostra creazione va messo a disposizione dei giornalisti che lo recensiranno ma non certo del pubblico generico. In tutti questi casi desideriamo che il file sia messo a disposizione solo degli utenti registrati che ne hanno diritto.

Nel seguito di questo paragrafo immagineremo che nel sito www.software.it esiste una sezione programmi. Ogni pagina della sezione programmi contiene la descrizione di una applicazione di nostra produzione, ed è riservata a una certa categoria di utenti registrati. Avremo dunque un campo "descrizione", un campo "memoria richiesta", un campo "sistema operativo", un campo "numero di versione" eccetera. La sezione programmi conterrà anche un campo chiamato "download", di tipo file, che useremo per conservare una copia del programma.

La soluzione più semplice in questo caso è quella sbagliata: creiamo una pagina riservata nella sezione "programmi" e carichiamo sul server il programma eseguibile dentro al campo "download" relativo. Se scegliamo questa strada, tuttavia, il documento ha un indirizzo Internet (URL) non protetto: qualche cosa del tipo http://www.software.it/cartella_download/programmi_download_101.exe. L'utente registrato "Mario" può scaricare legittimamente il documento, copiare quella URL, inviarla per posta elettronica all'utente non registrato "Pippo". Quest'ultimo allora potrà scaricare il file, senza neppure conoscere la password di Mario. La cosa è inaccettabile.

Per mantenere i nostri programmi al sicuro li vorremo registrare in una zona del server che non è accessibile via browser: i programmi dunque non hanno un indirizzo URL e non possono venire scaricati con semplicità. Per convenzione, Sar-At vuole trovare i file ad accesso protetto dentro a una cartella chiamata home, nella radice del disco rigido. La cartella home contiene una sottocartella per ogni tipologia di documento scaricabile, chiamata come il campo in questione. La figura sottostante rappresenta schematicamente il setup:

Il file verrà scaricato dal visitatore attraverso un indirizzo come questo:

    http://www.software.it/showFile.php?id=101&template=programmi&field=download

Quando un visitatore accede a un indirizzo di questo tipo, Sar-At ne verifica username e password, controlla che la data di scadenza sia nel futuro e garantisce che l'utente appartenga a un gruppo con diritto d'accesso sulla pagina e dunque sul documento.