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?