|
From: Enrico A. <an...@na...> - 2008-02-21 13:13:20
|
Aggiornamento del CVS: 1) Implementazione password criptate: Il sistema ora scrive le password nel database (Partecipa.base tabella persone) in un hash Md5 one-way, dal quale non puo' essere ricavata la password in chiaro. Sono state modificate tutte le routine che confrontavano la password e quindi le procedure di login, modifica password sia da utente che da amministratore, remind della password e registrazione iniziale dell'utente. Ho cercato di attenermi il piu' possibile alle procedure che tutti gli utenti Partecipa.net conoscono, ma nel caso del reminder della password ho dovuto cambiare leggermente la modalita': anziche' trasmettere la password in chiaro, cosa che evidentemente non e' piu possibile, all'utente viene azzerata la password e ne viene generata una nuova in modo pseudocasuale. Per non modificare la logica procedura di registrazione iniziale che prevede la scelta della password da parte dell'utente, ho dovuto implementare un sistema che salva temporaneamente la password fornita dell'utente in un file temporaneo che viene eliminato alla conferma della registrazione. Se ci fossero dubbi sulla sicurezza della cosa: finche' l'utente non conferma la registrazione lo stato dell'utente e' sospeso, quindi tale password non puo' essere usata in alcun modo... inoltre se qualcuno dovesse raggiungere il filesystem del server, la directory /tmp contiene anche le sessioni di apache che sono ben piu' pericolose... inoltre questi file non contengono l'account dell'utente ma solo la password, e vengono eliminati dal filesystem non appena l'utente conferma la registrazione. Per aiutare chi ha gia' una base installata con password in chiaro ho realizzato uno script di conversione che si trova in ./contrib: lo script va eseguito dalla stessa directory con: ./partecipa-maint.pl pwdconv che effettua la lettura della password in chiaro, le salva in un file cleartext_password_<data>.txt nella directory corrente ed effettua un update su tutti gli utenti con la password MD5. Inoltre eseguendo: ./partecipa-maint.pl savepwd viene creato uno script sql contenente le password attuali (indipendentemente dal fatto che siano in chiaro o meno) e che importato nel db riportera' le password di tutti gli utenti a quello stato. 2) Fix per integrazione Sympa: Dopo il fix per le accentate del precedente aggiornamento, ho scoperto che l'integrazione con sympa per l'archivio newsletter non funzionava piu': indagando ho trovato un pezzo di codice perl in TRIStateCGI.pm immesso da un terminale non UTF8 e che dava problemi in fase di conversione UTF8: per ora ho cambiato encoding prima della riga incriminata e l'ho rimesso in UTF8 immediatamente dopo, e la cosa sembra non dare problemi, quindi nel frattempo metto il fix in cvs: con calma vedro' se e' possibile adottare soluzioni piu' pulite (forse basta riscrivere manualmente la riga di codice incriminata senza cut&paste) |