Wer TypoGento verwendet oder verwenden möchte und dabei eine neue TYPO3-Version einsetzt, erhält bei der aktuellen Version einen Fehler. Der Fehler tritt bei allen TYPO3-Versionen auf, welche nicht mehr von der Sicherheitslücke TYPO3-CORE-SA-2011-001 betroffen sind.
Der Grund für den nun auftretenden Fehler ist ein deutlich vorgezogenes Starten der PHP-Session, wenn ein Benutzer eingeloggt ist. Dieses vorgezogene Starten der Session war für das Beheben der Sicherheitslücke entscheidend. Die Fehlermeldung, welche ein Webseiten-Besucher zu sehen bekommt ist die Folgende:
Fatal error: Mage_Core_Model_Session_Abstract::getMessages() [mage-core-model-session-abstract.getmessages]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Mage_Core_Model_Message_Collection" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /.../magento/app/code/core/Mage/Core/Model/Session/Abstract.php on line 215
Der Fehler tritt auf, weil TypoGento für das Laden von Magento-Klassen den Magento-Autoloader entfernt und gegen einen eigenen Autoloader ersetzt. Dass passiert bei Rendern des Plugin-Codes.
Magento speichert PHP-Objekte serialisiert in der Session. Wenn die Session gestartet wird, werden diese Objekte wieder deserialisiert. Das klappt aber nur, wenn der Autoloader von TypoGento bereits registriert ist. Bisher war das der Fall. In den neueren TYPO3-Versionen wird die Session aber deutlich früher wieder hergestellt und der Autoloader ist noch nicht ausgetauscht bzw. registriert. Somit kommt es zu der o.g. Fehlermeldung.
Um mit dem geändertem Session-Handling umgehen zu können, haben wir einige Punkte in TypoGento refactored. Allerdings wird TypoGento nun nur noch mit TYPO3 4.3 und neuer funktionieren. Wer einen ersten Entwicklungsstand ausprobieren möchte, kann sich auf GitHub (https://github.com/Flagbit/TypoGento) den Branch „beta“ downloaden. Für Feedback sind wir selbstverständlich dankbar.
Betroffen sind im Übrigen die TYPO3-Versionenen 4.3.12 und neuer, 4.4.9 und neuer sowie 4.5.4 und neuer. Somit sind also auch alle aktuellen TYPO3-Versionen betroffen.
0 Kommentare