Page 1 of 1

Messa in sicurezza del sito

Posted: Fri Oct 19, 2007 8:14 pm
by alby
Questo è un miniHowto per avere un minimo di sicurezza.
E' aperto ai contributi  ;)


1. Non utilizzate come username admin. Utilizzate semmai il vostro nomecognome o un vostro pseudonimo (ma non il vostro nome nel forum!)

2. Cambiare il nome della directory di admin. Questa directory non è fissa, rinominate la directory con un nome coerente ma non banale e possibilmente in italiano tipo (sceglietene un altro!!): amministra_cms, pannello_cmsms, controllodelsito, modificaeconfigura ......
Ricordarsi di modificare il config.php con il nuovo nome: $config['admin_dir'] = 'XXXXXXXX';

3. Proteggete la directory con una ulteriore password. In genere tutti gli hosting hanno una utility per costruire directory private, potete inserire uno user e password più blandi (deve andare bene per tutti quelli che accedono nell'area admin) ma è sempre un ulteriore step in termini di sicurezza

4. Permessi di config.php. Per l'installazione e gli Upgrade il file deve avere permessi 777 (read-write-execute per tutti), appena completata l'operazione portare i permessi a 444 (sola lettura per tutti) o, se funziona, addirittura a 440. Come cambiarli? Utilizzate un client FTP o il FileManager del vostro Pannello di hosting che supporti il cambio permessi (al giorno d'oggi non credo che ve ne siano che non possano fare questo!)

5. Permessi cartella tmp. Teoricamente la cartella tmp (con le sottocartelle) dovrebbe essere 777, inserite prima questi permessi, testate il sito (navigate un pò) e poi abbassate prima a 775 e testate di nuovo il sito, se va bene abbassate ancora a 755 e ritestate ancora, rimane (se funziona) 750 (sotto di questo è praticamente impossibile che funzioni!). Come cambiarli? Vedere il punto 4

6. Permessi cartella uploads. Esattamente come il caso precedente ma testatelo con un upload di una immagine e controllando che si veda "direttamente" dal browser chiamando http://www.miosito.it/uploads/images/[i]images.jpg[/i]. Come cambiarli? Vedere il punto 4
Inserite poi in Global settings (Configurazioni globali) un umask di 002 per avere meno problemi nella creazione dei thumb (miniature)

7. Contributi? (in verità ci sono altri punti ma sono per utenti molto avanzati perchè si arriva a cambiare anche il codice php e quindi bisogna poi ricordarsi ad ogni aggiornamneto di cambiare il codice)


Alby

Re: Messa in sicurezza del sito

Posted: Sat Oct 20, 2007 1:29 pm
by vins73
Ottimo.
Grazie per gli accorgimenti.

Re: Messa in sicurezza del sito

Posted: Tue Jan 22, 2008 2:44 pm
by blast2007
Ciao Alby,
buona giornata.
In aggiunta alla tua guida, molto ben fatta, si potrebbe integrare qualche suggerimento relativo a PHP e Apache

Il mio piccolo contributo è questo:

Per PHP settare in php.ini almeno queste impostazioni minime

Code: Select all

disable_functions = exec, show_source, shell_exec, system, popen, proc_open, proc_nice, ini_restore, passthru,dl
expose_php = Off
display_errors = Off
log_errors = On
register_globals = Off
allow_url_fopen = Off
allow_url_include = Off
e poi forse ma non confermato...

Code: Select all

magic_quotes_gpc Off
Per Apache:

dentro .htaccess aggiungere

Code: Select all

RewriteEngine On

#Filtra 'URI contenenti"http:"
RewriteCond % {QUERY_STRING} http\: [OR]

#Filtra  'URI contenenti una "["
RewriteCond % {QUERY_STRING} \[ [OR]

#Filtra  l'URI contenenti una  "]"
RewriteCond % {QUERY_STRING} \] [OR]

#Filtra  l'URI contenenti "<__script__>"
RewriteCond % {QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]

#Filtra script che cercano di settare una variabile PHP GLOBALS via URL
RewriteCond % {QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]

#Filtra script che cercano di  modificare una variabile _REQUEST via URL
RewriteCond % {QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
RewriteRule ^.*$ - [F,L] 
per fornire un errore 403 al "malizioso"


Correggimi eventuali inesattezze.

Ciao
blast

Re: Messa in sicurezza del sito

Posted: Tue Jan 22, 2008 6:05 pm
by alby
Direi che va bene  ;)

Alby

Re: Messa in sicurezza del sito

Posted: Wed Feb 13, 2008 8:31 am
by blast2007
Dopo aver letto questo post, si potrebbero aggiungere anche queste due istruzioni dentro al file .htaccess per evitare query UNION e quindi eventuali SQL injection future.

Modificare la sezione di .htaccess

Code: Select all

...
#Filtra script che cercano di  modificare una variabile _REQUEST via URL
RewriteCond % {QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
RewriteRule ^.*$ - [F,L]
in questo modo

Code: Select all

#Filtra script che cercano di  modificare una variabile _REQUEST via URL
RewriteCond % {QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})  [OR]
#IF the URI contains UNION
RewriteCond %{QUERY_STRING} UNION [OR]
#OR if the URI contains a *
RewriteCond %{QUERY_STRING} \*
#then deny the request (403)
RewriteRule ^.*$ - [F,L]
P.S. pare che sulla 1.2.3 il bug sià comunque già stato corretto, ma prevenire... ;)

Ciao di nuovo
blast

Re: Messa in sicurezza del sito

Posted: Wed Feb 20, 2008 10:43 pm
by blast2007
Ho pubblicato la guida completa (in inglese) relativa alla messa in sicurezza del sito su CMSMS wiki howto

Grazie Alby per i preziosi contributi
Ciao
blast

Re: Messa in sicurezza del sito

Posted: Sat Aug 02, 2008 11:21 am
by Eugenio
Ciao a tutti.

Sto facendo il sito della mia associazione e per l'installazione sto seguendo anche questa guida.
L'hosting dove ho il sito però non mi dà la possibilità di modificare nulla, se non quello previsto nelle mie cartelle, quindi solo quanto proposto nel primo post, cioè niente php.ini o htaccess.
Quindi devo ritenere il mio sito poco sicuro, oppure ci sono alternative?

Grazie
Ciao.

Re: Messa in sicurezza del sito

Posted: Sat Aug 02, 2008 1:25 pm
by blast2007
Eugenio wrote: Ciao a tutti.

Sto facendo il sito della mia associazione e per l'installazione sto seguendo anche questa guida.
L'hosting dove ho il sito però non mi dà la possibilità di modificare nulla, se non quello previsto nelle mie cartelle, quindi solo quanto proposto nel primo post, cioè niente php.ini o htaccess.
Quindi devo ritenere il mio sito poco sicuro, oppure ci sono alternative?

Grazie
Ciao.
Beh solitamente chi fornisce l'hosting si dovrebbe occupare di questi problemi per la parte sistemistica. Tu dalla tua parte occupati solo di tenere aggiornato tempestivamente CMSMS con l'ultima versione e possibilmente non installare applicazioni di terze parti che possano essere usate per "bucare" il tuo sito.

Ultimo consiglio, ma forse il primo in ordine di importanza crea dei backup regolarmente (se poi automatizzali)

Ciao
blast

Re: Messa in sicurezza del sito

Posted: Thu Aug 13, 2009 12:57 pm
by nervino
alby wrote:

7. (in verità ci sono altri punti ma sono per utenti molto avanzati perchè si arriva a cambiare anche il codice php e quindi bisogna poi ricordarsi ad ogni aggiornamneto di cambiare il codice)


Alby
Potresti fare un elenco di queste modifiche?

grazie

Re: Messa in sicurezza del sito

Posted: Thu Aug 13, 2009 2:43 pm
by alby
nervino wrote:
alby wrote: 7. (in verità ci sono altri punti ma sono per utenti molto avanzati perchè si arriva a cambiare anche il codice php e quindi bisogna poi ricordarsi ad ogni aggiornamneto di cambiare il codice)
Potresti fare un elenco di queste modifiche?
Be l'elenco è più o meno lungo a secondo di quanto accesso possiede l'utente: dalle modifiche al php.ini, alla costruzione di un ambiente jail, al patch del php, all'encoding del file php ...

Alby