Tale scelta deriva principalmente da questioni di sicurezza, infatti le problematiche che interessano questa feature sono davvero molte e spesso sono classificate come gravi. La Java object serialization è una funzionalità utilizzata per l'encoding object negli streams di byte, viene impiegata per la persistenza tramite socket oppure con Java RMI. La serializzazione, inoltre. consente di ricostruire un object graph dallo stream.

Rimuovere la serialization è in realtà un obbiettivo a lungo termine, parte di un progetto chiamato Amber che si focalizza sull'incremento della produttività. Per sopperire alla futura mancanza dell'attuale funzionalità di serializzazione verrà implementato un piccolo serialization framework all'interno della piattaforma Java, in modo da garantire il supporto alle applicazioni che ne fanno uso. Gli sviluppatori potranno poi integrare il framwork in un proprio serialization engine e si potrà operare senza problemi tramite i formati JSON o XML.

Mark Reinhold, chief architect del Java platform group per Oracle, ha dichiarato che la serialization inserita in Java nel 1997 è stato un grave errore, si stima infatti che un terzo delle vulnerabilità di sicurezza di Java riguardi proprio tale funzionalità. Recentemente in Java è stato implementato il supporto al filtering in modo da fornire un meccanismo di difesa contro le vulnerabilità della serialization, ma anche in questo caso possiamo parlare soltanto di una mitigazione del problema.

Tuttavia il team di Oracle non ha ancora fornito una data o una release precisa per la dismissione di tale funzionalità. I developer sono quindi ancora al lavoro sul nuovo framework, l'obbiettivo dell'azienda dovrebbe essere quello di migliorare in modo sensibile la sicurezza di Java, senza però stravolgere il suo ecosistema. Quindi si starebbe puntando ad un processo di aggiornamento controllato che consente di effettuare una transizione quanto più indolore possibile.

Via Inforworld

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *