La Librería Serialize en Magento 2.2

A partir de Magento 2.2 ya no podemos serializar datos directamente usando el comando de PHP serialize() y unserialized().

Magento2 no lo permite porque puede provocar problemas de seguridad en la aplicación.

As per Magento 2.2
Release Note Security enhancements
In general, we’ve removed serialize/unserialize from most the code to improve protection against remote code execution attacks. We’ve enhanced protection of code where use of object serialization or unserialization was unavoidable. Additionally, we’ve increased our use of output escaping to protect against cross-site scripting (XSS) attacks.

Las versión de Magento 2.2> pone a nuestra disposición la Librería SerializeVeamos su funcionamiento:

  • Esta librería nos permite de una forma segura serializar y deserializar cadenas, números, datos booleanos y arrays.
  • La librería Serialize nos provee tanto la interfaz Magento\Framework\Serialize\SerializerInterface, como las implementaciones  json y serialize para serializar o deserializar datos.
  • El propósito de la serialización es convertir datos en una cadena usando el método serialize() para poder guardarla en la base de datos, en la cache o para pasársela a otra aplicación.
  • La deserialización de los datos corre a cargo del método unserialize() que convierte la cadena serializada en datos que podamos leer.

Es importante saber que los datos serializados serán  guardados de una u otra manera «dependiendo de la versión de Magento» que estemos ejecutando.

  • Magento 2.0.x trabaja con la función PHP serialize por defecto.
  • Magento 2.2.x trabaja con la función PHP json por defecto (json_encode, json_decode)

En el caso que querramos utilizar la clase json:

Para usar la clase serialize:

 

Etiquetado

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.