Quindi stavo solo leggendo sul sito OWASP su PHP Object Injection . Secondo il loro sito, la soluzione suggerita è di non usare serialze
e unserialize
ma di usare
json_encode
e json_decode
.
Tuttavia, dopo aver fatto alcuni test in un periodo di tempo limitato, ho scoperto che non è affatto così. Ad esempio ( nell'esempio di Codepad funzionante ):
<?php
function e($method, $args) {
return $method($args);
}
var_dump(call_user_func_array("e", array((string)array_shift(json_decode("[\"system\"]")), "ls" )));
?>
Quindi, le mie domande sono:
-
Sei d'accordo con me che non è questo il caso, e ci dovrebbe essere più di una soluzione suggerita piuttosto che usare solo
json_*
funzioni? -
In realtà ho ragione a ritenere che ciò che ho fatto sia corretto?