Así que acabo de leer en el sitio de OWASP sobre Inyección de objetos PHP . Según su sitio, la solución sugerida es no usar serialze
y unserialize
sino usar
json_encode
y json_decode
.
Sin embargo, después de hacer algunas pruebas en un tiempo limitado, he descubierto que este no es el caso en absoluto. Por ejemplo ( ejemplo del teclado de trabajo ):
<?php
function e($method, $args) {
return $method($args);
}
var_dump(call_user_func_array("e", array((string)array_shift(json_decode("[\"system\"]")), "ls" )));
?>
Por lo tanto, mis preguntas son:
-
¿Estaría de acuerdo conmigo en que este no es el caso, y debería haber más de una solución sugerida en lugar de simplemente usar las funciones
json_*
? -
¿Tengo razón al suponer que lo que he hecho es correcto?