igbinary_unserialize

(PECL igbinary >= 1.1.1)

igbinary_unserialize Crea una variable PHP a partir de un valor serializado por igbinary_serialize()

Descripción

igbinary_unserialize(string $str): mixed

igbinary_unserialize() toma una variable serializada por igbinary_serialize() y la convierte en una variable PHP.

Advertencia

Las entradas de usuario no confiables no deben pasarse a la función igbinary_unserialize(). La deserialización puede resultar en la ejecución de código cargado y ejecutado durante la instanciación y el autochargado de objetos, y así, un usuario malintencionado puede ser capaz de explotar este comportamiento. En su lugar, un estándar de intercambio seguro como JSON (a través de json_decode() y json_encode()) debe usarse para pasar datos serializados al usuario.

Si es indispensable deserializar datos serializados provenientes del exterior, la función hash_hmac() puede usarse para validar los datos. Es importante verificar que nadie haya alterado los datos.

Advertencia

El protocolo de serialización por igbinary no permite distinguir entre los diferentes grupos de referencias. Todas las referencias PHP a un valor dado son vistas como miembros de un mismo grupo durante la deserialización, incluso si pertenecían a grupos diferentes antes de la serialización.

Parámetros

str

La cadena serializada, generada por igbinary_serialize().

Si la variable deserializada es un object, después de reconstruirla con éxito, PHP intentará automáticamente llamar a los métodos mágicos __unserialize() o __wakeup() (si alguno de ellos existe).

Nota: La directiva unserialize_callback_func

La función de retrollamada especificada en la directiva unserialize_callback_func es llamada cuando una clase no definida es deserializada. Si ninguna función de retrollamada es especificada, el objeto será instanciado como __PHP_Incomplete_Class.

Valores devueltos

El valor convertido es retornado por la función, y puede ser de tipo bool, int, float, string, array, object, o de tipo null.

Si la cadena pasada no puede ser deserializada, esta función retorna false y un diagnóstico E_NOTICE o E_WARNING es emitido.

Errores/Excepciones

Los objetos pueden lanzar un Throwable en su gestor de deserialización.

Notas

Advertencia

null o false es retornado ya sea en caso de error o después de deserializar el resultado de la serialización de null o false. Es posible discriminar entre estos dos casos especiales comparando el valor del parámetro str con el resultado de la ejecución de igbinary_serialize(null) o de igbinary_serialize(false) o bien atrapando un diagnóstico E_NOTICE.

Ver también

add a note

User Contributed Notes 1 note

up
0
olliejones at gmail dot com
2 months ago
This little function returns true if a data string was made by igbinary_serialize() and can be passed to igbinary_unseriaize().

function is_igbinary($data) {
return is_string($data) && '00000002' === bin2hex(substr($data, 0, 4));
}

It doesn't validate the contents of the data string, or ensure it is safe to decode if it came from an untrusted source. But it is handy when trying to avoid unserializing data that wasn't serialized.
To Top