L'installazione e l'uso di programmi esterni quali interpreti, plug-in e
script può letteralmente aprire una breccia nei livelli di protezione di
qualsiasi server Web. Anche gli host apparentemente più inviolabili
possono infatti cadere a causa di un banale exploit che sfrutta un semplice
script cgi per eseguire localmente sul server comandi diretti ad ottenere
l'accesso al sistema.
Poichè la storia è piena di esempi di questo genere,
prima ancora di decidere se sfruttare le funzionalità aggiuntive fornite da
script, plug-in ed altro, è sempre opportuno valutare complessivamente i
benefici ed i rischi che ne derivano ed optare per l'adozione soltanto quando i
primi siano realmente superiori ai secondi.
In ogni caso la
preoccupazione principale deve sempre rimanere quella di ridurre i rischi entro
limiti accettabili e per far ciò occorre:
- evitare, se possibile, l'uso di script di terze parti oppure accertarne
l'esatta provenienza ed autenticità del codice; - fare uso soltanto dei programmi e degli script veramente indispensabili
disabilitando tutti gli altri (ad esempio quelli dimostrativi spesso causa di
molteplici problemi); - impiegare tecniche di programmazione ortodosse nella scrittura del proprio
codice e prestare la massima attenzione ad aspetti quali la lunghezza e la
complessità finale, la presenza di opportuni controlli per la validazione
dell'input e l'interazione con altri programmi esterni o l'accesso in lettura
e/o scrittura al file system; - valutare attentamente la presenza di queste stesse caratteristiche anche
negli script di terze parti; - usare possibilmente una macchina di test per verificare il funzionamento di
tutti i programmi e degli script prima ancora di impiegarli in una macchina di
produzione; - evitare di collocare i programmi e gli interpreti all'interno della stessa
directory dove risiedono gli script (ad esempio la CGI-BIN) e posizionarli
invece in una directory separata opportunamente protetta ed accessibile soltanto
agli utenti amministratori; - circoscrivere l'accesso di programmi ed interpreti ai soli file e directory
indispensabili al loro funzionamento e comunque soltanto a quelli all'interno
del contenuto pubblico del Web; - verificare costantemente l'integrità degli eseguibili relativi a programmi
ed interpreti nonchè degli script;