PHP Upgrade Hölle – oder warum wir keine Beta-Tester mehr sein wollen

PHP hat seine Einsatzsfähigkeit in großen Umgebungen inzwischen vielfach bewiesen. Spätestens seit Facebook (ja diese Plattform, die 710 Mio Mitglieder zählt) es mit einer untypisierten Skriptsprache zum Erfolg gebracht hat, verstummen die Zweifel an der Umsetzbarkeit von IT Großprojekten und wird deutlich, das es mehr um die Software Engeneering Prozesse geht, die über den Erfolg oder Misserfolg solcher Projekte entscheiden.

Bei näherer Betrachtung der Release-Geschichte von PHP zeigen sich immer wieder eklatante Lücken in der rudimentären Qualitätssicherung. Bereits 2006 hatte der PHP-Sicherheitsexperte Stefan Esser, der auch das Tool Suhosin (“Schutzengel”) entwickelt hat, frustriert das Security Team verlassen, mit dem Hinweis wer sich wirklich um die Sicherheit in PHP bemühe werde im Security Team zur “Persona non Grata”.

Auch wenn diesmal nicht wieder ein schon gefixter Sicherheits-Bug in ein späteres PHP Release wieder Einzug gehalten hat, es ist wieder eine sicherheitskritische Funktion betroffen. Die Funktion “crypt“, die eigentlich einen Passwort Hash zurückliefern soll, liefert lediglich den Salt (einen kleinen Teil des Schlüssels), ausführlich hier beschrieben. Das ganze führt dann zwangsläufig zu dem Aufruf, die aktuelle Version 5.3.7. zu meiden. “Release early, release often” ist zwar schön, gut und richtig aber es sollten dann schon auch Maßnahmen getroffen werden, die zumindest so sicherheitsrelevante Bereiche, wie der ganze Crypto-Bereich, einer Qualitätssicherung unterziehen, anstatt die ganze Welt als Beta-Tester einzusetzen.

Auch frühere Bugs, die bereits gefixt in späteren Versionen wieder auftraten, lassen sich einfach und geschickt vermeiden, mit ein bisschen Anstrengung. Die Softwareentwicklung hat das Test Driven Development (TDD) als Antwort auf diese Probleme nicht umsonst erfunden. Wenn zu jedem Security Bug ein Test geschrieben wird, der diesen Bug verifiziert, lässt sich sehr einfach verhindern, das dieser wieder seinen Weg zurück in das offizielle Release findet. Auch kritische Bereiche – wie die erwähnten Crypto-Funktionen, lassen sich auf diesem Weg einfach, schnell und sicher stabil halten.

Ich hoffe, das PHP Entwickler Team greift die Vorzüge moderner Softwareentwicklung bald auf und schafft einen Qualitätsstandard die auch andere Plattformen bieten.