Messa in sicurezza del sito

La discussione sul CMS Made Simple in italiano.
Locked
alby

Messa in sicurezza del sito

Post 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
User avatar
vins73
Forum Members
Forum Members
Posts: 49
Joined: Wed Apr 18, 2007 12:43 pm
Location: Bologna

Re: Messa in sicurezza del sito

Post by vins73 »

Ottimo.
Grazie per gli accorgimenti.
User avatar
blast2007
Power Poster
Power Poster
Posts: 508
Joined: Wed Aug 01, 2007 5:36 pm

Re: Messa in sicurezza del sito

Post 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
Last edited by blast2007 on Tue Jan 22, 2008 3:35 pm, edited 1 time in total.
alby

Re: Messa in sicurezza del sito

Post by alby »

Direi che va bene  ;)

Alby
User avatar
blast2007
Power Poster
Power Poster
Posts: 508
Joined: Wed Aug 01, 2007 5:36 pm

Re: Messa in sicurezza del sito

Post 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
Last edited by blast2007 on Wed Feb 13, 2008 3:45 pm, edited 1 time in total.
User avatar
blast2007
Power Poster
Power Poster
Posts: 508
Joined: Wed Aug 01, 2007 5:36 pm

Re: Messa in sicurezza del sito

Post 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
Eugenio
Forum Members
Forum Members
Posts: 12
Joined: Wed May 21, 2008 8:34 am

Re: Messa in sicurezza del sito

Post 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.
User avatar
blast2007
Power Poster
Power Poster
Posts: 508
Joined: Wed Aug 01, 2007 5:36 pm

Re: Messa in sicurezza del sito

Post 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
nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm
Location: Roma, Italy

Re: Messa in sicurezza del sito

Post 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
alby

Re: Messa in sicurezza del sito

Post 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
Locked

Return to “Italian - Italiano”