Interpretacja danych wyświetlanych w serializacji

0

Witam,

Próbuję działać z (nie)bezpieczeństwem serializacji PHP. I tu przykładowy kod:

<?php
  define('LOG_FILE_PATH', '/var/log/costam1/');
  class Logger
  {
    private $logfile;
   
    public function __construct()
    {
      $this->logfile = LOG_FILE_PATH . "logger.log.tmp";
      touch($this->logfile);
    }
    public function __destruct()
    {
      echo "Usuwamy ".($this->logfile)."...\n";
      unlink($this->logfile);
    }
  }
  $logger = new Logger();
  var_export(serialize($logger));
?>

Wywołanie kodu da następującą odpowiedź:

Usuwamy /var/log/sekurak/logger.log.tmp...
'O:6:"Logger":1:{s:15:"' . "" . 'Logger' . "" . 'logfile";s:31:"/var/log/costam1/logger.log.tmp";}'

Nie rozumiem skąd ta część

s:15:"' . "" . 'Logger' . "" . 'logfile"

Wg mnie powinno być s"logfile". Czy ktoś mógłby to wyjaśnić?

0

Prywatne oraz chronione pola w PHPie są serializowane w dosyć specyficzny sposób - http://www.phpinternalsbook.com/php5/classes_objects/serialization.html.

0

To co wyświetlasz to nie jedynie wynik serializacji.
Zamień
var_export(serialize($logger));
na
echo serialize($logger)

to zobaczysz ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1