Link copiato negli appunti
- Disabilitare i SSI (Server Side Includes) ogni volta che questi non
siano strettamente necessari; si utilizzi la direttiva "Options" in ogni
directory oppure in ogni file .htaccess per abilitarli dove serva;
inoltre, sarebbe da disailitare la funzione "exec", potenzialmente
dannosa se utilizzata per secondi fini. - Si utilizzi la direttiva "AllowOverride None" ogni volta che questo
sia possibile. Tale direttiva serve a questo: se il webserver trova, ad
esempio, un file ".htaccess" o comunque un file il cui nome sia
specificato nella direttiva "AccessFileName", deve sapere quali valori
presenti in questo file possono bypassare quelli di default del server.
Quindi, potenzialmente, un file ".htaccess" potrebbe far comportare il
webserver in maniera totalmente differente da quella definita nel suo
file di configurazione. Ovviamente, con la direttiva "AllowOverride
None" non si corrono di questi rischi: a monte di tutto c'è, comunque,
un solido e curato file di configurazione principale di Apache. - Proteggete le home directory degli utenti, specialmente nel caso in
cui facciate dell'hosting remoto. Questo può essere fatto tramite la
direttiva "<Directory> </Directory>", che specifica delle direttiva da
applicare ad una determinata directory ed alle sue sottodirectory. Ad
esempio, supponendo che tutti i vostri utenti abbiano le loro home in
/usr/home, il minimo che potete scrivere è:
<Directory /usr/home>
AllowOverride None
Options Indexes
SymLinksIfOwnerMatch
</Directory>
- Ovviamente, potrete poi specificare altre opzioni che ritenete utili per
ognuno dei vostri utenti separatamente o, perchè no, tutti. - Non abusate della direttiva "AddHandler". Sebbene questa possa essere
utile a farci perdere meno tempo in configurazioni, copia dei file in
determinate directory ecc, può essere pericolosa per il semplice fatto
che qualsiasi estensione passata alla direttiva può diventare uno script
eseguibile sul server con conseguenza imprevedibili. Puntate piuttosto
su una cgi-bin di sistema ed, eventualmente, su una directory cgi-bin
per ogni utente (che dev'essere comunque controllata) senza specificare,
ad esempio, che qualsiasi file con estensione .pl o .cgi sia eseguito
dal server. È senza dubbio migliore perdere qualche minuto a spostare gli script nella
directory cgi-bin che non lasciare che qualsiasi file sia
indiscriminatamente eseguito da qualunque posizione (ovviamente
"web-visible"). - Fate attenzione all'assegnazione dei permessi: di regola, un utente,
specialmente in hosting, non dovrebbe mai avere la possibilità di uscire
dalla propria home directory, sia in lettura che soprattutto in
scrittura; questo per diversi motivi: intanto, per non andare a leggere
o modificare lavori di altri utenti e, in secondo luogo, per non andare
a zonzo nel sistema trovando magari qualche eseguibile da lanciare o
dati riservati da leggere. La cosa migliore sarebbe quella di creare un gruppo (potrebbe essere
"users" o "remote_users" o qualunque cosa vogliate) nel quale ogni nuovo
utente viene inserito, in modo che si veda già alla creazione limitato
nelle azioni da compiere sul sistema ospitante.