[CCA Developers] unserialize Alternative

Martin Auswöger martin at auswoeger.com
Fr Feb 21 11:24:59 CET 2014


Am 21.02.2014 um 11:04 schrieb Leo Unglaub <leo at leo-unglaub.net>:
> 
>> Wäre es sinnvoll diesen unserialize-Parser in Contao zu übernehmen (Lizenz ist Public Domain) und in der deserialize zu verwenden?
> 
> Ich muss gestehen ich finde die Art und Weise wie die den Fehler behoben
> haben richtig, jedoch meiner Meinung nach trotzdem ein Ansatz an
> falscher Stelle.
> 
> Es ist "bad practice" User-Input einfach so entgegen zu nehmen und
> weiter zu verarbeiten ohne es vorher zu filtern. Dafür gibts in PHP ja
> die ganzen Filter/Sanitization Funktionen:
> http://de1.php.net/manual/en/filter.examples.php
> 
> Wirklich richtig gelöst wäre es, wenn wir schauen welchen Typ wir
> erwarten und uns diesen dann via filter_input auch holen:
> http://de1.php.net/manual/en/function.filter-input.php

Ich denke das Problem liegt nicht daran dass User-Input nicht richtig gefiltert wird, sondern dass User-Input an die unserialize-Funktion weitergegeben wird.

Für die längerfristige Zukunft sollte man vermutlich auf unserialize verzichten und stattdessen auf json_encode oder ähnliches setzen.

Für Contao 3 wird es aber vermutlich nicht möglich sein die deserialize-Funktion auszubauen, vor allem weil sehr viele Erweiterungen diese verwenden.

Mein Vorschlag würde die Sicherheit von 3.2.7 nicht verbessern, sondern Fehler beim deserializen verhindern. Z. B. bei deserialize('a:1:{i:0;s:13:"foo:123:"BAR"";}‘)

LG Martin


More information about the Developers mailing list