Java e password: non usate quella String
Sì, potrà sembrare poco Java-style, ma memorizzare password o informazioni sensibili in variabili di tipo String in Java (ma anche C#) non è una buona idea.
Le stringhe in Java sono dette "immutabili" perché una volta inizializzate non è possibile cambiarne il contenuto (e quindi nemmeno poterle sovrascrivere!). E, come se non bastasse, il garbage collector non è così solerte nella cancellazione delle stringhe grazie al cosiddetto String Interning. Insomma nessuno vi garantisce che la stringa venga effettivamente cancellata e voi comunque non potrete sovrascriverla!
La soluzione è semplice: usate gli array di caratteri, possibilmente evitando di "hardencodarli" nel codice. Così sarete garantiti sia dalla possibilità di sovrascriverne il contenuto, che nella maggior solerzia del garbage collector!
Se volete approfondire l'argomento potete leggere la raccomandazione di secure coding qui.
Commenti
Posta un commento