unserialize() è una funzione PHP che prende dati serializzati e ricostruisce il valore originale, come array o oggetti. È potente perché può ripristinare rapidamente lo stato dell'applicazione, ma è pericolosa quando l'input proviene da un utente, da un parametro di richiesta, da un cookie o da qualsiasi altra fonte non attendibile. Se dati controllati da un attaccante vengono passati a unserialize(), PHP può istanziare oggetti e invocare metodi magici durante la ricostruzione.
Questo comportamento è importante nella sicurezza informatica perché può creare vulnerabilità di PHP object injection. Un attaccante può abusare di classi esistenti come gadget chain per attivare scritture su file, esecuzione di comandi o altre azioni non previste. Nelle difese reali, gli sviluppatori evitano unserialize() sui dati non attendibili, preferiscono formati più sicuri come JSON e limitano le classi consentite quando la deserializzazione è inevitabile. Le revisioni di sicurezza dovrebbero anche tracciare ogni percorso che raggiunge unserialize(), perché una singola chiamata non sicura può trasformare la normale gestione dell'input in una via verso l'esecuzione remota di codice.


