Custodire dati cifrati con PHP

Sto realizzando il mio CRM personale basandomi sul mio framework STOOPHP, e mi sono trovato nella necessità di memorizzare le password degli FTP dei clienti. Per una politica di correttezza non ho mai conservato le password in chiaro all’interno di un database, e mi sono sempre avvalso di hashing. Ma l’hashing è a senso unico e quando si dimentica la password bisogna per forza impostarne una nuova (diffidate dei siti che custodiscono la vostra password e sono pronti a rispedirvela quando desiderate). La mia esigenza è quella di poter visualizzare quali sono le password facendo in modo che nel database però siano criptate. Pertanto avevo bisogno di un algoritmo che permettesse anche il ritorno, per mezzo di una chiave di codifica (crittazione a due vie). La classe Crypt faceva al caso mio e ho implementato il meccanismo in questo modo:

  • Al login viene salvata in sessione la password del mio CRM da usare come chiave di codifica
  • Nella funzione che viene invocata ad ogni inserimento e modifica in una entry della tabella dei clienti (che corrisponde ad una classe nel mio framework STOOPHP) eseguo la cifratura della password
  • Nella funzione che viene invocata al momento di visualizzare un’entry della tabella eseguo la decrittazione

I dati sono al sicuro ma dal punto di vista dell’utente del CRM non è cambiato nulla. Mi ci è voluto tanto per scriverlo quanto per farlo, grazie alla programmazione orientata agli oggetti.

Alcuni suggerimenti per chi vuole la sicurezza estrema in base a ciò che al momento so:

  • Usare HTTPS
  • Visualizzare la password in un’immagine stile captcha

2 thoughts on “Custodire dati cifrati con PHP

  • Pingback: | EC blog

  • Ovviamente questa è la prassi, ma io avevo bisogno di integrare un password manager nel mio CRM per poter recuperare le password di un FTP nel caso dovessi intervenire su un sito da un altro computer.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

%d blogger hanno fatto clic su Mi Piace per questo: